OpenSSH 8.7 发布

经过四个月的开发,OpenSSH 8.7 发布了,这是一个通过 SSH 2.0 和 SFTP 协议工作的客户端和服务器的开放实现。

主要变化:

  • scp 中添加了实验性数据传输模式,使用 SFTP 协议代替传统的 SCP/RCP 协议。 SFTP 使用更可预测的名称处理方法,并且不在另一主机端使用 glob 模式的 shell 处理,这会产生安全问题。 为了在 scp 中启用 SFTP,已提议使用“-s”标志,但将来计划默认切换到该协议。
  • sftp-server 实现了 SFTP 协议的扩展,以扩展 ~/ 和 ~user/ 路径,这是 scp 所必需的。
  • scp 实用程序更改了在两个远程主机之间复制文件时的行为(例如,“scp host-a:/path host-b:”),现在默认情况下通过中间本地主机完成此操作,就像指定“ -3”标志。 这种方法允许您避免向第一台主机传递不必要的凭据以及 shell 中文件名的三重解释(在源、目标和本地系统端),并且在使用 SFTP 时,它允许您在访问远程时使用所有身份验证方法。主机,而不仅仅是非交互式方法。 添加了“-R”选项以恢复旧的行为。
  • 向 ssh 添加了与“-f”标志相对应的 ForkAfterAuthentication 设置。
  • 向 ssh 添加了 StdinNull 设置,对应于“-n”标志。
  • ssh 中添加了 SessionType 设置,通过它您可以设置与“-N”(无会话)和“-s”(子系统)标志相对应的模式。
  • ssh-keygen 允许您在密钥文件中指定密钥有效期。
  • 向 ssh-keygen 添加了“-Oprint-pubkey”标志,以打印完整的公钥作为 sshsig 签名的一部分。
  • 在 ssh 和 sshd 中,客户端和服务器都已改为使用限制性更强的配置文件解析器,该解析器使用类似 shell 的规则来处理引号、空格和转义字符。 新的解析器也不会忽略之前所做的假设,例如省略选项中的参数(例如,DenyUsers 指令不能再留空)、未闭合的引号以及指定多个 = 字符。
  • 当使用 SSHFP DNS 记录验证密钥时,ssh 现在会检查所有匹配的记录,而不仅仅是那些包含特定类型数字签名的记录。
  • 在 ssh-keygen 中,当使用 -Ochallenge 选项生成 FIDO 密钥时,内置层现在用于散列,而不是 libfido2,后者允许使用大于或小于 32 字节的质询序列。
  • 在 sshd 中,当处理authorized_keys 文件中的environment="..." 指令时,现在接受第一个匹配项,并且环境变量名称的数量限制为 1024 个。

OpenSSH 开发人员还警告说,由于给定前缀的冲突攻击效率提高(选择冲突的成本估计约为 1 万美元),因此使用 SHA-50 哈希的算法会被分解。 在下一个版本中,我们计划默认禁用使用公钥数字签名算法“ssh-rsa”的功能,该算法在 SSH 协议的原始 RFC 中提到,并且在实践中仍然广泛使用。

要测试 ssh-rsa 在您的系统上的使用情况,您可以尝试使用“-oHostKeyAlgorithms=-ssh-rsa”选项通过 ssh 连接。 同时,默认禁用“ssh-rsa”数字签名并不意味着完全放弃使用RSA密钥,因为除了SHA-1之外,SSH协议还允许使用其他哈希计算算法。 特别是,除了“ssh-rsa”之外,仍然可以使用“rsa-sha2-256”(RSA/SHA256)和“rsa-sha2-512”(RSA/SHA512)捆绑包。

为了顺利过渡到新算法,OpenSSH 之前默认启用 UpdateHostKeys 设置,该设置允许客户端自动切换到更可靠的算法。 使用此设置,可以启用特殊的协议扩展“[电子邮件保护]”,允许服务器在身份验证后通知客户端所有可用的主机密钥。 客户端可以在其 ~/.ssh/known_hosts 文件中反映这些密钥,这允许更新主机密钥并更容易更改服务器上的密钥。

UpdateHostKeys 的使用受到一些将来可能会被删除的警告的限制:密钥必须在 UserKnownHostsFile 中引用,并且不能在 GlobalKnownHostsFile 中使用; 密钥必须仅存在于一个名称下; 不应使用主机密钥证书; 在known_hosts 中不应使用主机名掩码; 必须禁用VerifyHostKeyDNS设置; UserKnownHostsFile 参数必须处于活动状态。

推荐的迁移算法包括基于 RFC2 RSA SHA-256 的 rsa-sha512-8332/2(自 OpenSSH 7.2 起支持并默认使用)、ssh-ed25519(自 OpenSSH 6.5 起支持)和基于 ecdsa-sha2-nistp256/384/521 RFC5656 ECDSA(自 OpenSSH 5.7 起支持)。

来源: opennet.ru

添加评论