我有一个设置,我想通过带有私钥/公钥的无密码SSH从windows7vm连接到Linux服务器。在
SSH连接通过Cygwin终端正常工作。在
使用Paramiko,如果我接受丢失的主机密钥,我可以从客户机连接到主机,但是如果我尝试使用known_hosts
来代替,我会得到错误:
Server XXX not found in known_hosts.
Paramiko是否能够读取Windows/Cygwin中的known_hosts
文件?我能提供路径吗?在
我的.ssh
文件夹位于C:\cygwin64\home\<user>\.ssh
下。在
非常感谢您的帮助,
托马斯
我假设您使用的是^{} 。在
默认情况下,这些方法加载} 使用
os.path.expanduser('~/.ssh/known_hosts')
文件。与您的C:\cygwin64\home\<user>\.ssh
位置不匹配的是,^{USERPROFILE
环境变量,该变量指向C:\Users\<user>
。在您可以通过以下方式解决:
C:\Users\<user>\.ssh
到{SSHClient.load_system_host_keys
的调用中显式指定filename
参数(不可移植)HOME
环境变量设置为指向C:\cygwin64\home\<user>
,而在运行Python脚本之前,os.path.expanduser
将{USERPROFILE
-并且Windows不使用HOME
(可能会破坏其他内容)。在相关问题 更多 >
编程相关推荐