首页 > 解决方案 > paramiko.ssh_exception.SSHException:找不到主机 xx.xx.xx.xxx 的主机密钥

问题描述

我正在尝试使用 pysftp 并得到与许多其他人相同的错误。主机没有主机密钥。我尝试了许多修复,但似乎没有一个有效。

当我尝试设置主机名时,出现以下错误:

cnopts = pysftp.CnOpts()
cnopts.hostkeys.load('known_hosts')

with pysftp.Connection(host, username, password, cnopts=cnopts) as sftp:
/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/pysftp/__init__.py:61: UserWarning: Failed to load HostKeys from /home/runner/.ssh/known_hosts.  You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).
  warnings.warn(wmsg, UserWarning)

我也尝试关闭主机密钥并在本地加载,但似乎没有任何效果。

标签: pythonsshsftpparamikopysftp

解决方案


如果known_hosts默认位置不存在并且您没有在CnOpts构造函数中指定替代位置,则会收到该警告。

这应该有效:

cnopts = pysftp.CnOpts(knownhosts='known_hosts')

推荐阅读