2016-04-12 34 views
0

我一直在使用的paramiko了一段時間,一切都和預期一樣,但是當我搬出了我的測試環境中,我打開一個SSH會話的paramiko - 不兼容的SSH服務器(不接受MACS)

時得到這個錯誤
paramiko.ssh_exception.SSHException: Incompatible ssh server (no acceptable macs) 

追查到錯誤後,我注意到在我的遠程服務器上,我錯過了/etc/ssh/sshd_config文件中的一些條目。無論是我的設置都互委會上市:

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

然而,它的工作原理在一個而不是另一個。什麼可能導致這個?我沒有保存任何一個rsa密鑰(遠程服務器不允許寫入)。

遠程服務器的sshd_config

# 
# Allow Ciphers and MACs 
# 
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,arcfour256,arcfour128 
MACs [email protected],hmac-ripemd160,hmac-sha2-512,hmac-sha2-256 

RemoteAccess.py

class RemoteAccess(): 
    def __init__(self, host="abc123", username="abc", password="123"): 
     self.name = host 
     self.client = paramiko.SSHClient() 
     self.client.load_system_host_keys() 
     self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
     self.client.connect(host, username=username, password=password) 

鏈接我引用:

Python - Paramiko - incompatible ssh server

paramiko Incompatible ssh peer (no acceptable kex algorithm)

+0

而問題是什麼? – Jakuje

+0

這是你的paramiko版本? – fernandezcuesta

+0

問題是「什麼導致此錯誤消息,即使使用相同的sshd_config文件?」工作設置有paramiko 1.16.0,非工作設置有paramiko 1.15.1 –

回答

3

出於某種原因,paramiko1.15.1會抱怨MAC不兼容。 paramiko1.16.0沒有。通過將1.16.0文件複製到其安裝位置來修復此問題。

/usr/lib/python2.7/site-packages/paramiko 

變更記錄的paramiko版本可以在這裏找到: http://www.paramiko.org/changelog.html

+0

是的,原因是'hmac-sha2- *'支持在1.16中添加(參見上面鏈接中的功能#356) – fernandezcuesta