Java J2SSH SFTP - 主机密钥无效

hvelit 发布于 2019-03-09 j2ssh 最后更新 2019-03-09 14:31 9 浏览

我正在使用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。
已邀请:

wodio

赞同来自:

在没有环境重现的情况下在黑暗中刺伤但是我猜你正在连接的任何东西都会导致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页并发送一些稍微不同的东西(全部大写?)来编码签名格式标识符。我检查过的具有类似功能的其他程序似乎强制将键名称强制为大写或小写,然后执行相等检查。