2013-04-11 179 views
2

我正在使用J2SSH 0.2.9 SFTP。當連接到特定的網站SFTP,我收到了錯誤Java J2SSH SFTP - 主機密鑰無效

主機密鑰簽名無效

但是連接到使用WinSCP賦予或FileZilla中並沒有給我任何類型的錯誤的同一部位。

的代碼是令人關注的具體區域是

boolean result = pk.verifySignature(sig, sigdata); 
    log.info("The host key signature is " + 
     (result ? " valid" : "invalid")); 

在TransportProtocolClient.java

的關鍵是SSH-DSS是否有差別。

+0

您連接的網站是否廣爲人知?你能說出來嗎? – 2013-04-15 09:57:05

+0

沒有抱歉,它是一個財務網站,並通過IP地址連接。 – Jamie 2013-04-15 12:54:45

回答

1

在黑暗中沒有一個環境重現刺的位,但我要猜測你連接到的任何東西都會導致j2ssh.transport.publickey.dsa.SshDssPublicKey這部分的問題。

163 if (!header.equals("ssh-dss")) { 
164  throw new InvalidSshKeySignatureException(); 
165 } 

還有一些其他的錯誤情況可能會導致相同的異常混濁水有點。

252 } catch (NoSuchAlgorithmException nsae) { 
253   throw new InvalidSshKeySignatureException(); 
254 } catch (InvalidKeyException ike) { 
255  throw new InvalidSshKeySignatureException(); 
256 } catch (IOException ioe) { 
257  throw new InvalidSshKeySignatureException(); 
258 } catch (SignatureException se) { 
259  throw new InvalidSshKeySignatureException(); 
260 } 

我懷疑服務器小姐解釋第13頁IETF RFC 4253和發送的簽名格式標識符及其編碼的東西略有不同(所有的大寫?)。其他具有類似功能的程序我檢查似乎強制關鍵名稱大寫或小寫,然後執行平等檢查。