JSch SFTP安全与session.setConfig(“StrictHostKeyChecki

2019-05-12 08:37发布

我使用JSch用私钥对FTP文件

  1. jsch.addIdentity(privatekeyfile);
  2. 会话会话= jsch.getSession( “用户”, “domain.com”,22);
  3. session.setConfig( “StrictHostKeyChecking”, “否”);

3号线是有问题。 如果没有这一行,JSch不起作用。

我的问题是:第3行化妆SFTP传输不安全?

Answer 1:

禁用StrictHostKeyChecking选项将使连接比具有启用选项,因为它可以让你连接到远程服务器,而无需验证他们的SSH主机密钥的安全性较低。 如果启用该选项,你将只能连接到哪个键是众所周知的SSH客户端的服务器。

你将不得不决定是什么意思为您的特定使用案例 - 你连接的是私人的,本地网络上的服务器或你连接在互联网上? 这是一个测试或生产环境?

如果有疑问,最好是犯错更安全的一面。 我建议使StricktHostKeyChecking以及使用该setKnownHosts方法提供一种包含远程主机密钥的文件。



Answer 2:

是的,它将使连接(和转移)是不安全的。 特别是,它使开放的连接人在这方面的中间人攻击 。

你永远不应该设置StrictHostKeyCheckingno ,除非你不关心安全性(例如专用网络连接中时)。

这是不正确的,“如果没有这一行,JSch不起作用”。 你必须让你的代码接受预期的服务器的主机密钥。 无论是通过setKnownHostssetHostKeyRepository方法。

举例来说,看到如何解决Java的UnknownHostKey,同时使用JSch SFTP库?


你可以阅读我的文章验证主机密钥来了解它的重要性。 这是关于WinSCP赋予SSH / SFTP客户端,但它通常是真实的任何SSH客户端/库。



文章来源: JSch SFTP security with session.setConfig(“StrictHostKeyChecking”, “no”);