我试图使用以下脚本连接到服务器:
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或类似的客户端访问,它也能工作;尽管它显示以下警告,涉及主机密钥算法和指纹:

但是,脚本没有正确运行,并报告了以下错误:
Ftp://my_ip:my_port: SSHException:无法连接到s
Errno 60操作超时
即使我只尝试使用host = my_ip。此外,如果我不设置cnopts,它将找不到主机键。
我该怎么解决呢?
发布于 2019-09-23 06:16:27
host参数Connection constructor是:
远程计算机的主机名或IP。
不是URL。
所以应该是:
srv = pysftp.Connection(host="my_ip",
username="alessandro", password="alessandro", port=2222,
cnopts=cnopts)此外,除非您不关心安全性,否则不要设置cnopts.hostkeys = None__。
有关正确的解决方案,请参见。
https://stackoverflow.com/questions/58053075
复制相似问题