我无法使用 pysftp 连接到服务器



我想使用pysftp读取远程服务器上的文件。为此,我在想要连接的服务器上生成了ssh密钥,并将公钥添加到我的代码中。在我改变我的虚拟机(debian 10)之前,它工作得很好。现在我有一个错误:

SSHException: Bad host key from server

如果有人有主意的话会对我有很大帮助的。

下面是我的代码:
from base64 import decodebytes
import os
import pysftp 
import paramiko
host = os.getenv('host')
username = os.getenv('username')
password = os.getenv('password')
#public key
keydata = bytes(os.getenv('key'),'UTF-8')
key = paramiko.RSAKey(data=decodebytes(keydata))
cnopts = pysftp.CnOpts()
cnopts.hostkeys.add(host,'ssh-rsa', key)
with pysftp.Connection(host=host, username=username, password=password, cnopts=cnopts, port=22) as sftp:
sftp.cwd('/home/user/') 
for attr in sftp.listdir(): 
print(attr)

您可以通过以下方式调试:

  • 检查您的密钥是否在开头或结尾有空白。
  • 然后用您的密钥直接ssh到该服务器请确保您使用-v选项详细记录日志。
  • 检查/etc/ssh/sshd_config是否允许sftp(好的方法是使用不同的sftp用户进行安全通信)。

感谢

相关内容

  • 没有找到相关文章

最新更新