2011-09-02 25 views
16

paramikoライブラリを使用してCisco ACSデバイスにssh接続しようとすると、次のエラーが発生します。私はpythonで問題なくparamikoを使用しました。コマンドラインからこのボックスにsshするか、問題なくputtyを使用できます。私はデバッグを有効にしてここに情報をコピーしました。あなたが私を助けてくれたら教えてください。paramiko互換性のないsshピア(許容できるkexアルゴリズム)

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('%s\n' % sshFail) 
    sys.exit() 
except socket.error, socketFail: 
    sys.stdout.write('Failed to open socket\n') 
    sys.stdout.write('%s\n' % socketFail) 
    sys.exit() 

とデバッグ出力が返さ:

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', '[email protected]'] server compress:['none', '[email protected]'] 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 "build\bdist.win32\egg\paramiko\transport.py", line 1546, in run 
ERROR:paramiko.transport: self._handler_table[ptype](self, m) 
ERROR:paramiko.transport: File "build\bdist.win32\egg\paramiko\transport.py", line 1618, in _negotiate_keys 
ERROR:paramiko.transport: self._parse_kex_init(m) 
ERROR:paramiko.transport: File "build\bdist.win32\egg\paramiko\transport.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) 

私はpycryptoとparamikoインストールの最新バージョンを持っていることを確認作りました。

+4

あなたはDenverCoder9 ... あなたは何を見ましたか? – BizNuge

+0

私にとって、 'sudo easy_install paramiko'は問題を修正しました。鍵交換(kex)アルゴリズムはあなたが変更できるsshd設定かもしれませんか? – Justin

+2

@BizNugeまだこの問題が発生している場合は、下のwisniaの回答を確認してください。私はポストを編集してカットアンドペーストを簡単にしました。 –

答えて

14

私は、サーバー側でDebian 8とOpenSSHと同様の問題がありました。で

は、/ etc/ssh/sshd_config:クイックフィックスとして

、サーバ側で以下の暗号/ MACアドレス/ KexAlgorithmsの設定が問題を修正ものの

Ciphers [email protected],[email protected],aes256-ctr,aes128-ctr 
MACs [email protected],[email protected],[email protected],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 

...セキュリティの観点からこれらの設定を分析する必要があります。私は実験室でそれを設定したので、気にしなかった。 (注)Cisco ACSこれはOPの状況を助けないかもしれない

+0

wisnia、これをありがとう - paramikoをアップグレードした後でも、私は同じ問題がありましたが、あなたの設定を使って使用)は私の問題を解決しました。 –

+0

あなたはここで正確に何をしているのか説明できますか? – Daan

+0

必要な/ etc/ssh/sshd_configへの最小限の追加は、 "KexAlgorithms diffie-hellman-group-exchange-sha1"です。私は本当に上記のリストを使用し、ストリッピングを開始しました。しかし、このアルゴリズムは、元の記事で述べたようにセキュリティ上の観点から最も安全ではありません。 –

1

のために、この方法でそれを変更することができ、うまくいけば、それは同じエラーを持つ他の誰かを助けるかもしれない場合も

わかりません。

私は1つのスクリプトがシステムにうまくSSHだろうが、他の同様のスクリプトが同じ

paramiko.SSHException: Incompatible ssh peer (no acceptable kex algorithm) 

エラーで失敗するでしょう事態に遭遇しました。

状況は私のスクリプトの先頭にシェバング行であることが判明:

#!/usr/bin/python 

は失敗し、

#!/usr/bin/env python 

が成功するでしょうが。

私のシステムではvirtualenvsを使用していますので、/usr/bin/pythonバージョンでは古いParamikoバージョンが使用されていましたが、/usr/bin/env pythonバージョンでは新しいバージョンのParamikoが使用されていました。

0

私のために、私はparamikoのバージョンをアップグレードして、それを解決しました。具体的には、最初はUbuntu 14.04 python-paramikoパッケージを使用してparamikoをインストールし、最新のpip(1.10 - > 1.16)に置き換えました。

11

私は問題を解決するためにparamikoをアップグレード:

sudo pip install paramiko --upgrade 

paramikoの私の更新されたバージョンは、次のとおりです。

paramiko==2.0.2

+1

これは私のためにmacOSで働いた。 –

+0

これは私が試したときに失敗しました。 paramikoの依存関係を正常に構築するためには、いくつかの依存関係が必要でした。結局私はまだ接続できませんでした - 私はparamikoの現在のバージョンが私のシステム(Ubuntu 14.04)にはあまりにも新しく、互換性がないと信じています。結局、私は 'sudo pip install paramiko == 1.16'を実行し、これがうまくいった。 – jdhildeb

1

アルバデバイスへのSSHしようとすると、私は次のエラーを得ていましたparamikoを使用:

paramiko.ssh_exception.SSHException:互換性のないsshピア(なし許容KEXアルゴリズム)paramikoを行う

は、この問題を解決するアップグレード:

sudo pip install paramiko --upgrade 
2

誰にもまだあなたがparamikoを持っていないことを確認し、でもpip install paramiko --upgradeを使用してアップグレードした後、この問題を持っている場合システム全体にインストールされているため、ピップ前にロードされるため、dpkg -l | grep paramikoで確認できます。インストールされている場合は削除してpip経由でインストールしてください。

関連する問題