OpenSSH 9.4 现已发布

OpenSSH 是 100% 完整的 SSH 协议 2.0 实现,且包括 sftp 客户端和服务器支持。

OpenSSH 9.4 现已发布,此版本修复了许多 bug 并添加了一些小功能。

可能不兼容的更改

  • 此版本删除了对旧版本 libcrypto 的支持。OpenSSH 现在需要 LibreSSL >= 3.1.0 或 OpenSSL >= 1.1.1。注意,这些版本已被其上游供应商弃用。

  • ssh-agent(1):PKCS#11 模块现在必须以完整路径指定。以前 dlopen(3) 可以在系统库目录中搜索它们。

新功能

  • ssh(1):允许通过 ssh -W 转发 Domain sockets。
  • ssh(1):向 ssh(1) 添加对 configuration tags 的支持。这添加了ssh_config(5) “Tag”指令和相应的“Match tag”谓词,可用于选择块配置类似于 pf.conf(5) 同名关键字的配置块。
  • ssh(1):添加“match localnetwork”谓词。这样就可以匹配可用网络接口的地址,并可根据网络位置改变有效的客户端配置。

  • ssh(1)、sshd(8)、ssh-keygen(1):KRL 扩展的基础设施支持。这定义了可选 KRL 扩展的 defines wire 格式,并实现新 submessages 的解析。目前还不支持实际的扩展。

  • sshd(8) : 现在 AuthorizedPrincipalsCommand 和 AuthorizedKeysCommand 接受两个额外的 % 扩展序列:%D 扩展为连接会话的路由域,%C 扩展为连接源和目的地的地址和端口号。

  • ssh-keygen(1) : 将用于为受密码保护的密钥文件生成对称加密密钥的 bcrypt KDF 的默认工作因子(轮数)提高 50%。

Bug 修复

  • ssh-agent(1):通过为每个加载的提供程序运行单独的 ssh-pkcs11-helpers,改进加载的 PKCS#11 模块之间的隔离。

  • ssh(1):make -f (fork after authentication) 在包括 ControlPersist 在内的多路复用连接中正常工作。

  • ssh(1):使 ConnectTimeout 应用于多路复用套接字,而不仅仅是网络连接。仅适用于网络连接。

  • ssh-agent(1) , ssh(1):通过在加载请求的模块之前检查其是否包含所需的符号,改进了对加载无效 PKCS#11 模块的防御。

  • sshd(8):在 sshd_config 中,当 AuthorizedKeysCommand 出现在 AuthorizedPrincipalsCommand 之前时,修正 AuthorizedPrincipalsCommand。自 OpenSSH 8.7 以来,在这种情况下 AuthorizedPrincipalsCommand 指令被错误地忽略了。

  • ALL:修复一些内存泄漏和 unreachable/harmless 的整数溢出。

  • ssh-agent(1)、ssh(1):不要截断从 PKCS#11 模块记录的字符串

  • sshd(8)、ssh(1):更好地验证 ssh_config 和 sshd_config 中的 CASignatureAlgorithms。以前,该指令可接受证书算法名称,但由于 OpenSSH 不支持 CA 链,这些名称在实际中无法使用。

  • ssh(1) : 使ssh -Q CASignatureAlgorithms仅列对 CA 签名有效的签名算法。算法。以前的行为是列出所有签名算法,包括证书算法。

  • ssh-keyscan(1):优雅地处理 rlimits 或最大打开文件数大于 INT_MAX 的系统

  • ssh-keygen(1):修复在多个密钥上运行 ssh-keygen -l 时不显示“no comment”的问题,其中一个密钥有注释,而后面的其他密钥没有。

  • scp(1)、sftp(1):调整 ftruncate() 逻辑以处理重新排序请求的服务器。以前,如果服务器对请求重新排序,那么生成的文件就会被错误地截断。

  • ssh(1):当 CanonicalizeHostname=yes 和 ProxyJump 明确设置为"none"时,不要错误地禁用主机名规范化。

  • scp(1):复制 local->remote 时,在打开与服务器的 SFTP 连接之前检查源文件是否存在。

可移植性

  • ALL:针对不同平台和配置组合的大量构建修复。

  • sshd(8):提供已弃用的 SELinux matchpathcon() 函数的替代程序。

  • ALL:放宽对 OpenSSL >=3 的 libcrypto 版本检查。在 OpenSSL 3.0 之后,ABI 兼容性的保证范围更广(只有库的 major 必须匹配,而不是早期版本中的 major 和 minor)。 

  • 修复某些测试中使用的 sk-dummy.so FIDO 提供程序模块的构建问题。

详情可查看更新公告:https://www.openssh.com/releasenotes.html

猜你喜欢

转载自www.oschina.net/news/253293/openssh-9-4-released
9.4