JSch SFTP 安全 session.setConfig("StrictHostKeyChecking", "no");
JSch SFTP security with session.setConfig("StrictHostKeyChecking", "no");
我使用带有私钥的 JSch 到 FTP 文件
- jsch.addIdentity(私钥文件);
- 会话会话 = jsch.getSession( "user", "domain.com" ,22);
- session.setConfig("StrictHostKeyChecking", "no");
第 3 行有问题。没有这条线,JSch 将无法工作。
我的问题是:
第 3 行会使 SFTP 传输不安全吗?
禁用 StrictHostKeyChecking
选项会使连接的安全性低于启用该选项,因为它会让您连接到远程服务器而无需验证其 SSH 主机密钥。如果启用该选项,您将只能连接到您的 SSH 客户端已知密钥的服务器。
您必须决定这对您的特定用例意味着什么 - 您连接的服务器是在私有本地网络上还是通过互联网连接?这是测试环境还是生产环境?
如有疑问,最好还是宁愿选择更安全的方式。我建议启用 StricktHostKeyChecking
并使用 setKnownHosts
method 来提供包含远程主机密钥的文件。
是的,它会降低连接(和传输)的安全性。特别是,它使连接打开 Man-in-the-middle attacks.
永远不要将 StrictHostKeyChecking
设置为 no
,除非您不关心安全性(例如在专用网络中连接时)。
"Without this line, JSch does not work"不正确。您只需让您的代码接受预期的服务器主机密钥。通过 setKnownHosts
or the setHostKeyRepository
方法。
有关示例,请参阅
您可以阅读我在 verifying the host key 上的文章以了解其重要性。它是关于 WinSCP SSH/SFTP 客户端的,但它通常适用于任何 SSH client/library。
我使用带有私钥的 JSch 到 FTP 文件
- jsch.addIdentity(私钥文件);
- 会话会话 = jsch.getSession( "user", "domain.com" ,22);
- session.setConfig("StrictHostKeyChecking", "no");
第 3 行有问题。没有这条线,JSch 将无法工作。
我的问题是: 第 3 行会使 SFTP 传输不安全吗?
禁用 StrictHostKeyChecking
选项会使连接的安全性低于启用该选项,因为它会让您连接到远程服务器而无需验证其 SSH 主机密钥。如果启用该选项,您将只能连接到您的 SSH 客户端已知密钥的服务器。
您必须决定这对您的特定用例意味着什么 - 您连接的服务器是在私有本地网络上还是通过互联网连接?这是测试环境还是生产环境?
如有疑问,最好还是宁愿选择更安全的方式。我建议启用 StricktHostKeyChecking
并使用 setKnownHosts
method 来提供包含远程主机密钥的文件。
是的,它会降低连接(和传输)的安全性。特别是,它使连接打开 Man-in-the-middle attacks.
永远不要将 StrictHostKeyChecking
设置为 no
,除非您不关心安全性(例如在专用网络中连接时)。
"Without this line, JSch does not work"不正确。您只需让您的代码接受预期的服务器主机密钥。通过 setKnownHosts
or the setHostKeyRepository
方法。
有关示例,请参阅
您可以阅读我在 verifying the host key 上的文章以了解其重要性。它是关于 WinSCP SSH/SFTP 客户端的,但它通常适用于任何 SSH client/library。