0

我正在尝试使用 lib ch.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 连接到同一台服务器,我收到一条消息,告诉我指纹不是预期的,但如果我单击“是”以确认我可以连接。

我在 Java Doc 中读到我可以忽略密钥的验证,但不建议这样做(http://www.ganymed.ethz.ch/ssh2/javadoc/ch/ethz/ssh2/Connection.html#connect%28ch。 ethz.ssh2.ServerHostKeyVerifier,%20int,%20int%29)。

我正在寻找的是一种更改服务器中某些内容的方法,以便我可以正确连接。我不想更改 Java 代码。

谢谢,

奥特曼·马利赫

4

2 回答 2

1

远程指纹缓存在您计算机的某个位置。你需要做两件事:

  1. 找出远程指纹发生变化的原因。有人篡改了您的连接或远程服务器的可能性不大,但有可能。

  2. 刷新缓存。检查你的 SSH 框架的文档如何做到这一点。下次连接时,远程指纹将被重新缓存。

于 2012-09-11T11:37:27.840 回答
0

事实证明,这是由于我使用的 ganymed 版本中的错误。

我将它从 001 更改为 209,现在一切正常。

感谢 Aaron Digulla 的回答。

于 2012-09-14T14:00:14.553 回答