问题
I have an error on a script I have wrote since few months, it worked very good with a raspberry pi, but now with an orange pi I have this:
>>> 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)
I can connect in console with ssh without problem.
Somebody has an idea ?
回答1:
You should check if any of those MACs algorithms are available on your SSH server (sshd_config, key: MACs) :
- HMAC-SHA1
- HMAC-MD5
- HMAC-SHA1-96
- HMAC-MD5-96.
They are needed in order for Paramiko to connect to your SSH server.
回答2:
On your remote server, edit /etc/ssh/sshd_config
and add a MACs
line or append to the existing one, with one or more of hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96
(values are comma-separated), for example:
MACs hmac-sha1
Now restart sshd: sudo systemctl restart ssh
.
回答3:
If the above solutions do not work, you need to upgrade Paramiko as found out by this answer.
来源:https://stackoverflow.com/questions/28399335/python-paramiko-incompatible-ssh-server