我使用带有私钥的JSch到FTP文件
第3行有问题。没有这一行,JSch就无法工作。
我的问题是: 第3行会使SFTP传输不安全吗?
答案 0 :(得分:6)
禁用127.0.0.1 testcf11.localhost
选项会使连接不如启用该选项更安全,因为它可以让您连接到远程服务器而无需验证其SSH主机密钥。如果启用该选项,则只能连接到SSH客户端已知密钥的服务器。
您必须确定这对您的特定用例意味着什么 - 您在私人本地网络上连接的服务器还是通过互联网连接?这是测试或生产环境吗?
如果有疑问,最好更安全地犯错误。我建议启用StrictHostKeyChecking
并使用setKnownHosts
method提供包含远程主机密钥的文件。
答案 1 :(得分:1)
是的,它会使连接(和传输)不安全。特别是,它使连接对Man-in-the-middle attacks开放。
除非您不关心安全性(例如在专用网络内连接时),否则不应将StrictHostKeyChecking
设置为no
。
“没有这一行,JSch无法正常工作”。您只需要让代码接受预期服务器的主机密钥。通过setKnownHosts
或setHostKeyRepository
方法。
例如,请参阅How to resolve Java UnknownHostKey, while using JSch SFTP library?
您可以阅读verifying the host key上的文章,了解其重要性。它是关于WinSCP SSH / SFTP客户端,但对于任何SSH客户端/库通常都是如此。