SSH バージョンのアップグレードにより接続障害が発生する

会社のシステムは、サードパーティの ssh プラグイン jsch-0.1.39.jar を使用しています。収集は以前は正常でしたが、製造元のサーバー ssh がバージョン 2.0 にアップグレードされたため、プログラムがエラーを報告しました。例外は次のとおりです。 :

com.jcraft.jsch.JSchException: Algorithm negotiation fail
        at com.jcraft.jsch.Session.receive_kexinit(Session.java:510)
        at com.jcraft.jsch.Session.connect(Session.java:285)
        at com.jcraft.jsch.Session.connect(Session.java:149)
        at ...........

インターネットで調べてみると、バージョンアップ後にクライアントとサーバーの暗号化方式が一致していないことが原因との記述が多く、/etc/ssh/sshd_config または /usr/etc/sshd_config ファイルを修正することで解決できるとのことでした。次のコンテンツを追加します:
 KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh -sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]

ただし、サーバーはメーカーのものであり、メーカーが改造するのは容易ではないため、この方法がパスされます。

その後、同僚が「以前にもこのような現象に遭遇したことがあり、プラグインをアップグレードすれば大丈夫だろう」とのことで、思い切って最新版の jsch-0.1.53.jar をダウンロードし、置き換えたところ問題なく動作しました。

根本的なことが理解できていない場合は、メモを取ってください。

おすすめ

転載: blog.csdn.net/u013456765/article/details/52192812