python - Pysftp:操作超时

标签 python sftp paramiko pysftp

我正在尝试使用以下脚本连接到服务器:

import pysftp

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None 

srv = pysftp.Connection(host="sftp://my_ip:my_port", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)
data = srv.listdir()
srv.close()

for i in data:
    print (i)

如果我尝试使用相同的凭据通过 FileZilla 或类似的客户端进行访问,它会起作用;即使它显示以下警告,涉及主机 key 算法和指纹:

enter image description here

但是,该脚本无法正常运行并报告以下错误:

SSHException: Unable to connect to sftp://my_ip:my_port: [Errno 60] Operation timed out

即使我仅尝试使用host = my_ip。另外,如果我不设置 cnopts,它就找不到主机 key 。

如何解决?

最佳答案

Connection constructorhost 参数是:

The Hostname or IP of the remote machine.

不是URL

所以应该是:

srv = pysftp.Connection(host="my_ip", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)
<小时/>

此外,请勿设置cnopts.hostkeys = None,除非您不关心安全性。
正确的解决方案请参见Verify host key with pysftp

关于python - Pysftp:操作超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58053075/

相关文章:

python - Virtualenv 没有创建环境

php - SFTP 中的 ftp_chdir 等效项是什么?

linux - Azure VM 中的 SFTP RSA 身份验证

python - 处理 Paramiko SSHException - 服务器连接断开

python-paramiko - 在后台运行命令

python - 所有标记的 seaborn 散点图标记大小

python - DeepPavlov elmo 太慢了

python - 绑定(bind)键字段中可以包含哪些键?

Python SFTP 彭博数据许可证 - Paramiko

python - 连续从 Paramiko SSH exec_command 获取输出