Python - Paramiko - 不兼容的 ssh 服务器

Python - Paramiko - incompatible ssh server

几个月以来我写的脚本有一个错误,它在 raspberry pi 上运行得很好,但现在在橙色 pi 上我有这个:

>>> import paramiko
>>> transport = paramiko.Transport("192.168.2.2", 22)
>>> transport.connect(username = "orangepi", password = "my_pass")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 978, in connect
    self.start_client()
  File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 406, in start_client
    raise e
paramiko.ssh_exception.SSHException: Incompatible ssh server (no acceptable macs)

我可以在控制台中使用 ssh 毫无问题地连接。

有人有想法吗?

您应该检查您的 SSH 服务器上是否有任何这些 MAC 算法可用(sshd_config,密钥:MAC):

  • HMAC-SHA1
  • HMAC-MD5
  • HMAC-SHA1-96
  • HMAC-MD5-96.

为了让 Paramiko 连接到您的 SSH 服务器,需要它们。

在您的远程服务器上,编辑/etc/ssh/sshd_config添加MACs行或附加到现有的,带有一个或多个 hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96(值以逗号分隔),例如:

MACs hmac-sha1

现在重新启动 sshd: sudo systemctl restart ssh.

如果上述解决方案不起作用,您需要升级 Paramiko,如此