使用 JSch 解决 Java SFTP 中的 UnknownHostKey 错误
当 JSch 在建立 SFTP 连接时遇到未知主机密钥时,会出现“UnknownHostKey”错误。要解决此问题,您需要向 JSch 提供预期的主机密钥以进行身份验证。
设置 StrictHostKeyChecking
最初,您尝试通过设置“禁用主机密钥检查”在连接到 SFTP 服务器之前,将“StrictHostKeyChecking”设置为“no”。这是一个安全风险,除非绝对必要,否则不应这样做。
正确的方法:设置预期的主机密钥
相反,您应该为JSch 进行验证。有两种主要方法可以实现此目的:
使用known_hosts文件
ssh-keyscan example.com > known_hosts JSch.setKnownHosts("path/to/known_hosts");
使用 HostKeyRepository
// Create HostKey from public key HostKey key = new HostKey("example.com", "rsa", ...); // Add HostKey to repository JSch.getHostKeyRepository().add(key);
注意:两种方法都确保 JSch 可以使用预期的主机密钥验证 SFTP 服务器的真实性,从而解决“UnknownHostKey”错误。
以上是如何使用 JSch 解决 Java SFTP 中的'UnknownHostKey”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!