paramiko Incompatible SSH peer (pas d'algorithme kex acceptable))
j'obtiens l'erreur suivante en essayant de ssh à un périphérique Cisco ACS en utilisant la bibliothèque paramiko. J'ai utilisé paramiko en python sans problème, et je peux ssh à cette boîte depuis la ligne de commande, ou en utilisant putty sans problème. J'ai activé le débogage et copié les infos ici. S'il vous plaît laissez-moi savoir si vous pouvez m'aider.
import paramiko
import sys
try:
paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
sshConnection = paramiko.SSHClient()
sshConnection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshConnection.connect('server',username='username',password='password')
except paramiko.BadAuthenticationType:
sys.stdout.write('Bad Password!n')
sys.exit()
except paramiko.SSHException, sshFail:
sys.stdout.write('Connection Failed!n')
sys.stdout.write('%sn' % sshFail)
sys.exit()
except socket.error, socketFail:
sys.stdout.write('Failed to open socketn')
sys.stdout.write('%sn' % socketFail)
sys.exit()
et la sortie de débogage est retourné:
DEBUG:paramiko.transport:starting thread (client mode): 0x14511d0L
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
DEBUG:paramiko.transport:kex algos:['diffie-hellman-group14-sha1'] server key:['ssh-rsa'] client encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] server encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] client mac:['hmac-sha1'] server mac:['hmac-sha1'] client compress:['none', 'zlib@openssh.com'] server compress:['none', 'zlib@openssh.com'] client lang:[''] server lang:[''] kex follows?False
ERROR:paramiko.transport:Exception: Incompatible ssh peer (no acceptable kex algorithm)
ERROR:paramiko.transport:Traceback (most recent call last):
ERROR:paramiko.transport: File "buildbdist.win32eggparamikotransport.py", line 1546, in run
ERROR:paramiko.transport: self._handler_table[ptype](self, m)
ERROR:paramiko.transport: File "buildbdist.win32eggparamikotransport.py", line 1618, in _negotiate_keys
ERROR:paramiko.transport: self._parse_kex_init(m)
ERROR:paramiko.transport: File "buildbdist.win32eggparamikotransport.py", line 1731, in _parse_kex_init
ERROR:paramiko.transport: raise SSHException('Incompatible ssh peer (no acceptable kex algorithm)')
ERROR:paramiko.transport:SSHException: Incompatible ssh peer (no acceptable kex algorithm)
ERROR:paramiko.transport:
Connection Failed!
Incompatible ssh peer (no acceptable kex algorithm)
je me suis assuré d'avoir les versions les plus récentes de pycrypto et paramiko installer.
6 réponses
J'avais un problème similaire avec Debian 8 et OpenSSH du côté serveur.
comme solution rapide, les paramètres de chiffrement/MACs/KexAlgorithms suivants du côté du serveur corrigent le problème:
In/etc / sshd_config:
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,hmac-sha1
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
cependant... vous devriez analyser ces paramètres du point de vue de la sécurité. Je l'ai installé au labo env, donc je ne m'en suis pas occupé.
également pas sûr si vous pouvez le modifier de cette façon pour Cisco ACS
j'ai mis à jour le paramiko pour corriger le problème:
sudo pip install paramiko --upgrade
ma version mise à jour de paramiko est:
paramiko==2.0.2
au cas où quelqu'un d'autre aurait encore ce problème même après avoir mis à jour en utilisant pip install paramiko --upgrade
, assurez-vous que vous n'avez pas paramiko installé système large, parce qu'il sera chargé avant ceux pip, vous pouvez le vérifier avec dpkg -l | grep paramiko
, s'il est installé l'enlever et installer par pip.
pour moi, j'ai amélioré la version de paramiko et il a résolu les choses. Plus précisément, j'ai installé à l'origine paramiko via le paquet Ubuntu 14.04 python-paramiko et je l'ai remplacé par la dernière version utilisant pip (1.10 -> 1.16).
j'ai eu l'erreur suivante en essayant de ssh à un périphérique Aruba En utilisant paramiko:
paramiko.ssh_exception.SSHException: Incompatible ssh par les pairs (pas acceptable kex algorithme)
faire une mise à niveau paramiko résolu ce problème:
sudo pip install paramiko --upgrade
cela peut ne pas aider la situation de L'OP, mais avec un peu de chance, cela peut aider quelqu'un d'autre avec la même erreur.
j'ai rencontré une situation dans laquelle un script SSH entrerait dans un système très bien, mais un autre script similaire échouerait avec le même
paramiko.SSHException: Incompatible ssh peer (no acceptable kex algorithm)
erreur.
La situation s'est avéré être la ligne shebang en haut de mon script:
#!/usr/bin/python
échouerait, tandis que
#!/usr/bin/env python
serait un succès.
je suis en utilisant virtualenvs sur mon système, donc l'échec /usr/bin/python
la version utilisait L'ancienne version Paramiko installée sur le système, alors que la /usr/bin/env python
version utilisait la nouvelle installation Paramiko dans mon virtualenv.