我正在尝试使用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代码。
谢谢,
Otmane MALIH
答案 0 :(得分:1)
远程指纹缓存在计算机上的某个位置。你需要做两件事:
找出远程指纹发生变化的原因。不太可能,但有人可能会篡改您的连接或远程服务器。
刷新缓存。查看SSH框架的文档如何执行此操作。下次连接时,远程指纹将重新缓存。
答案 1 :(得分:0)
事实证明,这是由于我使用的ganymed版本中的错误。
我将它从001更改为209,现在一切正常。
感谢Aaron Digulla的回答。