使用Cygwin OpenSSH的Windows上的Paramiko找不到已知的主机文件

2024-09-27 23:17:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个设置,我想通过带有私钥/公钥的无密码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下。在

非常感谢您的帮助,
托马斯


Tags: 服务器终端paramiko密码客户机linux密钥ssh
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:46

我假设您使用的是^{}。在

默认情况下,这些方法加载os.path.expanduser('~/.ssh/known_hosts')文件。与您的C:\cygwin64\home\<user>\.ssh位置不匹配的是,^{}使用USERPROFILE环境变量,该变量指向C:\Users\<user>。在


您可以通过以下方式解决:

  • 以某种方式改变你的Cygwin配置(但是它会破坏其他东西)
  • 或者创建从C:\Users\<user>\.ssh到{}的目录连接(可能是最可移植的解决方案)
  • 或者在对SSHClient.load_system_host_keys的调用中显式指定filename参数(不可移植)
  • 或者在运行Python脚本之前将HOME环境变量设置为指向C:\cygwin64\home\<user>,而在运行Python脚本之前,os.path.expanduser将{}设置为USERPROFILE-并且Windows不使用HOME(可能会破坏其他内容)。在

相关问题 更多 >

    热门问题