2

J2SSH 0.2.9 SFTP を使用しています。特定の SFTP サイトに接続すると、エラーが発生します

ホスト鍵の署名が無効です

ただし、WinSCP または Filezilla を使用して同じサイトに接続しても、エラーは発生しません。

懸念されるコードの特定の領域は

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

TransportProtocolClient.java 内

違いがある場合、鍵は SSH-DSS です。

4

1 に答える 1

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    }

サーバーがIETF RFC 4253の 13 ページを解釈し損ねており、署名形式の識別子をエンコードするために、わずかに異なるもの (すべて大文字?) を送信していると思われます。私がチェックした同様の機能を持つ他のプログラムは、キー名を大文字または小文字に強制し、等価チェックを実行するようです。

于 2013-04-15T14:07:45.520 に答える