【问题标题】:jcraft jsch SSH with udpated linux [closed]jcraft jsch SSH 与 udpated linux [关闭]
【发布时间】:2019-08-19 00:09:54
【问题描述】:

我们最近将一些旧系统从 Ubuntu 14 LTS 更新到了 Ubtuntu 16 LTS。当我们这样做时,我们的一些较旧的 ssh 客户端无法连接到较新的 Ubuntu 16,包括我们使用 java SSH 库 jcraft.jsch 的自动化工具。

JSCH 声称实现了 SSH2,这就是我们的新服务器使用的,所以我认为它应该可以工作。是否需要设置任何标志才能让 JSCH 从 Java 应用程序中以编程方式连接到较新的 ubuntu/linux 版本。

【问题讨论】:

  • 本题关注一个用于ssh的java库。在我看来,它不应该被搁置。
  • 我同意你的问题不是题外话,但我认为它太宽泛太抽象了;您在没有详细说明要解决的问题的情况下寻求解决方案。您能否对其进行修改以专注于当“旧的 ssh 客户端无法连接到新的 Ubuntu 16” 时出现的特定问题?
  • 根据@skomisa 所写的内容,我特别没有投票支持将问题作为off-topic 结束,而是太宽泛以上。

标签: linux ssh jsch


【解决方案1】:

最近,OpenSSH 已弃用许多旧算法,因为它们不安全或很弱,例如使用 CBC、RC4 (arc4four)、Diffie-Hellman group 1 和 RIPEMD-160 的算法。虽然这些算法仍然存在于您使用的 OpenSSH 版本中,但它们已经或将在未来版本中删除,并且在 Ubuntu 16.04 中默认禁用。

您尚未指定 JSCH 或您正在使用的其他客户端的版本,因此无法确定是否是此原因。也有可能,如果您的所有客户端都在使用 Java,那么他们使用的是版本 8 之前的 Java,该版本仅支持 1024 位 Diffie-Hellman,已知不安全。

可以通过在 sshd 配置文件中指定 CiphersKexAlgorithmsMACs 选项来启用旧算法。您可以通过运行man sshd_config 或使用带有适当参数的ssh -Q 查看允许值和默认值。

现代版本的 OpenSSH 不支持 1024 位 Diffie-Hellman,因此如果这是您的问题,则需要升级 Java。

但是,最好更新您的客户端以使用更现代的版本。如上所述,这些算法正在消失,而功能性和安全性的替代方案已经出现了一段时间。 Ubuntu 16.04 中可用的 JSCH 和 Java 版本应该支持正确的算法,尽管您可能需要适当地配置它们,因为它们可能默认不启用。

如果您有兴趣,Mozilla 提供了一个很好的描述 secure configuration 您可以在您的系统上使用。算法名称是标准化的,因此您可以在任何支持它们的 SSH 客户端或服务器的配置中使用它们。

【讨论】:

  • 我们使用的是 JSCH 0.1.55 (JSCH-0.1.55.jar),我认为它是最新版本。您是否知道允许我们使用该版本的 JSCH 连接到现代 ubuntu 的设置?
  • 我不确定如何配置 JSCH。从理论上讲,该版本应该与 OpenSSH 互操作,但您可能需要查看文档和 Mozilla 建议并进行相应的配置。
  • 正如@bk2204 所说,将KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1 添加到/etc/ssh/sshd_config 对我的情况有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2016-09-26
  • 2015-12-30
相关资源
最近更新 更多