如何使用特定的HostkeyAlgorithms python配置pysftp/paramiko连接

2024-06-01 19:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要自动将文件从一台服务器传输到客户机的SFTP服务器。我已经用Python的pysftp包做过几百次了。但是,在这种情况下,我需要设置一个HostkeyAlgorithm。我已经阅读了Paramiko的doc,因为pysftp似乎完全没有这个选项,而且是基于Paramiko构建的。但老实说,我不知道该怎么做(我不常玩网络游戏)。我通过bash手动发送以下内容:

sftp -o HostkeyAlgorithms=+ssh-dss user@host.com

我在Python中尝试了以下方法,但没有成功:

^{pr2}$

这将返回:

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?在


Tags: in服务器paramikolibpackagesusrlocaldist
1条回答
网友
1楼 · 发布于 2024-06-01 19:26:56

Paramiko将使用与您为会话配置的主机密钥匹配的主机密钥算法。在

您没有指定任何主机密钥,而是盲目地接受所有主机密钥(MissingHostKeyPolicy),这是一个安全缺陷。您失去了对MITM attacks的保护。在

有关正确(安全)的方法,请参阅:


但是,我实际上不明白,如果因为MissingHostKeyPolicy甚至不验证主机密钥,为什么还要设置“HostkeyAlgorithms”?-“Authentication failed”错误肯定与主机密钥无关。在

相关问题 更多 >