0

libch.ethz.ssh2.Connectionを使用してssh2経由でリモートサーバーに接続しようとしています

connexion = new Connection(host);
connexion.connect();
boolean isOK = connexion.authenticateWithPassword(login, pass);

しかし、connexion.connect()でIOExceptionが発生します。このエラーメッセージで:

Connection closed (Signature sent by remote is wrong!)

Puttyを使用して同じサーバーに接続しようとすると、指紋が期待どおりではないというメッセージが表示されますが、[はい]をクリックして接続できることを確認します。

キーの検証を無視できることをJavaDocで読みましたが、推奨されていません(http://www.ganymed.ethz.ch/ssh2/javadoc/ch/ethz/ssh2/Connection.html#connect%28ch)。 ethz.ssh2.ServerHostKeyVerifier、%20int、%20int%29)。

私が探しているのは、正しく接続できるようにサーバー内の何かを変更する方法です。Javaコードを変更したくありません。

ありがとう、

Otmane MALIH

4

2 に答える 2

1

リモート指紋は、コンピューターのどこかにキャッシュされます。あなたは2つのことをする必要があります:

  1. リモートフィンガープリントが変更された理由を調べてください。誰かがあなたの接続またはリモートサーバーを改ざんした可能性は低いですが、可能性があります。

  2. キャッシュをフラッシュします。その方法については、SSHフレームワークのドキュメントを確認してください。次回接続すると、リモート指紋が新たにキャッシュされます。

于 2012-09-11T11:37:27.840 に答える
0

さて、それは私が使用したganymedのバージョンのバグが原因であることがわかりました。

001から209に変更しましたが、すべて正常に動作します。

アーロン・ディグラ、ご回答ありがとうございます。

于 2012-09-14T14:00:14.553 に答える