如何使用特定的 HostkeyAlgorithms 配置 pysftp/paramiko 连接 - python
How to configure pysftp/paramiko connection with specific HostkeyAlgorithms - python
我需要自动将文件从一台服务器传输到客户端的 SFTP 服务器。我已经使用 Python 的 pysftp 包完成了数百次。但是,在这种情况下,我需要设置 HostkeyAlgorithm
。我已经通读了 Paramiko 的文档,因为 pysftp 似乎完全没有这个选项并且是建立在 Paramiko 上的。但老实说,我不知道该怎么做(我不经常玩网络游戏)。我一直通过 bash 手动发送以下内容:
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)
这个returns:
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.
所以我想问题是 where/how 我是否在设置 Paramiko 连接时添加 -o HostkeyAlgorithms=+ssh-dss
?
Paramiko 将使用与您为会话配置的主机密钥相匹配的主机密钥算法。
您没有指定任何主机密钥,而是盲目接受所有主机密钥 (MissingHostKeyPolicy
),这是一个安全漏洞。您失去了针对 MITM attacks.
的保护
有关正确(和安全)的方法,请参阅:
- Verify host key with pysftp
虽然,我其实不明白,为什么要设置“HostkeyAlgorithms”,如果由于MissingHostKeyPolicy
连主机密钥都不验证? – “身份验证失败” 错误肯定与主机密钥无关。
我需要自动将文件从一台服务器传输到客户端的 SFTP 服务器。我已经使用 Python 的 pysftp 包完成了数百次。但是,在这种情况下,我需要设置 HostkeyAlgorithm
。我已经通读了 Paramiko 的文档,因为 pysftp 似乎完全没有这个选项并且是建立在 Paramiko 上的。但老实说,我不知道该怎么做(我不经常玩网络游戏)。我一直通过 bash 手动发送以下内容:
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)
这个returns:
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.
所以我想问题是 where/how 我是否在设置 Paramiko 连接时添加 -o HostkeyAlgorithms=+ssh-dss
?
Paramiko 将使用与您为会话配置的主机密钥相匹配的主机密钥算法。
您没有指定任何主机密钥,而是盲目接受所有主机密钥 (MissingHostKeyPolicy
),这是一个安全漏洞。您失去了针对 MITM attacks.
有关正确(和安全)的方法,请参阅:
- Verify host key with pysftp
虽然,我其实不明白,为什么要设置“HostkeyAlgorithms”,如果由于MissingHostKeyPolicy
连主机密钥都不验证? – “身份验证失败” 错误肯定与主机密钥无关。