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

Gui*_*ume 4 python ssh paramiko

几个月来我写的一个脚本出错了,它的覆盆子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)
Run Code Online (Sandbox Code Playgroud)

我可以在控制台中使用ssh连接而没有问题.

有人有想法吗?

Rai*_*ito 6

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

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

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


Wer*_*ght 6

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

MACs hmac-sha1
Run Code Online (Sandbox Code Playgroud)

现在重启sshd : sudo systemctl restart ssh.

  • 请注意,这是一种安全风险(虽然很小),但大多数其他MAC都基于更安全的哈希值. (2认同)