我需要自动将文件从一个服务器传输到客户的SFTP服务器。我已经使用Python的pysftp包完成了数百次此操作。但是,在这种情况下,我需要设置HostkeyAlgorithm
。由于pysftp似乎完全缺少此选项并建立在Paramiko上,我已经阅读了Paramiko文档。但是,我实在不知道该怎么做(我很少涉及网络相关的事情)。我一直在通过以下方式手动发送:
sftp -o HostkeyAlgorithms=+ssh-dss user@host.com
我尝试使用以下Python代码,但没有成功:
import paramiko
_host='somehostname.com'
_user='thisguy'
_pass='you_get_the_idea'
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy())
client.connect(_host, 22, _user, _pass)
这将返回:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 424, in connect
passphrase,
File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 714, in _auth
raise saved_exception
paramiko.ssh_exception.AuthenticationException: Authentication failed.
所以我猜问题就是在设置Paramiko连接时,我在哪里/如何添加-o HostkeyAlgorithms=+ssh-dss
呢?