我使用带有私钥的JSch到FTP文件
第3行有问题。没有这一行,JSch就无法工作。
我的问题是:3号线会使SFTP传输不安全吗?
禁用StrictHostKeyChecking
选项将使连接比启用该选项更不安全,因为它允许您连接到远程服务器而无需验证其SSH主机密钥。如果启用该选项,您将只能连接到SSH客户端已知密钥的服务器。
您必须决定这对于您的特定用例意味着什么——您连接的服务器是在专用的本地网络上,还是通过互联网连接?这是测试环境还是生产环境?
如有疑问,最好在更安全的方面犯错。我建议启用 StricktHostKeyCheck
并使用 setKnownHosts
方法来提供一个包含远程主机密钥的文件。
是的,它会降低连接(和传输)的安全性。特别是,它使连接向中间人攻击开放。
除非您不关心安全性(例如在专用网络内连接时),否则不要将< code > stricthostkey checking 设置为< code>no。
不是“没有这条线,JSch就不行”。您只需要让您的代码接受预期的服务器主机密钥。通过< code>setKnownHosts或< code > sethostkey repository 方法。
有关示例,请参阅如何在使用JSch SFTP库的同时解析JavaUn,nononHostKey?
您可以阅读我关于验证主机密钥的文章,了解它的重要性。它是关于WinSCPSSH /SFTP客户端的,但它通常适用于任何SSH客户端/库。