OpenSSH 是 100% 完整的 SSH 协议 2.0 实现,且包括 sftp 客户端和服务器支持。
OpenSSH 9.2 现已发布,此版本包含两个安全问题和一个内存安全问题的修复程序:
- sshd(8) : 修复 OpenSSH 9.1 中引入的预认证双释放内存错误。它发生在受 chroot(2) 影响的非特权预授权进程中, 并在大多数主要平台上进一步沙盒化,但不可利用。
- ssh(8):在 8.7 之后的 OpenSSH 版本中,PermitRemoteOpen 选项将忽略它的第一个参数,除非它是特殊的参数关键字“any”或“none”之一,如果仅指定一个权限,则会导致权限列表无法打开。
- bz3515 ssh(1):如果启用了 CanonicalizeHostname 和 CanonicalizePermittedCNAMEs 选项,且系统/libc 解析器没有检查 DNS 响应中的名称是否有效,那么这些选项可能允许控制 DNS 的攻击者在更新时将无效字符(可能包括通配符)添加到 known_hosts 文件的名称中。
新功能
- sshd(8):通过新的sshd_config(5) ChannelTimeout 指令添加对通道不活动超时的支持。 在可配置的时间间隔内,通道如果没有检测到流量则会自动关闭。可以将不同的超时应用于 X11、代理和 TCP 转发通道等。
- sshd(8) : 添加 sshd_config UnusedConnectionTimeout 选项,以终止在一段时间内没有开放通道的客户端连接。它补充了上面的 ChannelTimeout 选项。
- sshd(8) : 像 ssh 客户端一样,向 sshd 添加一个 -V(版本)选项。
- ssh(1):在 ssh -G 的输出中添加“主机”行,显示原始主机名参数。bz3343
- scp(1) , sftp(1) :为scp(1)和sftp(1)添加一个 -X 选项,以允许控制一些 SFTP 协议参数:复制缓冲区长度和请求的数量,两者都在上传/下载期间使用。
- ssh-keyscan(1):允许扫描完整的 CIDR 地址范围, 例如“ssh-keyscan 192.168.0.0/24”。如果通过了 CIDR 范围,则将扩展到范围内所有可能的地址, 包括全 0 和全 1 地址。bz#976
- ssh(1) : 在 escape 命令行的 -R 处理中支持动态远程端口转发。bz#3499
修复
- ssh(1):当恢复非阻塞模式到 stdio fds 时, 准确恢复 ssh 开始的标志,不只是用零破坏它们,因为这也可能从集合中删除附加标志。bz3523
- ssh(1):避免 printf(“%s”, NULL) 如果使用 UserKnownHostsFile=none 和系统已知主机文件之一中的主机密钥更改。
- scp(1):将 scp 从使用管道切换到套接字对,与其 ssh 子进程通信时匹配 sftp(1) 的操作方式。
- sshd(8):在 main() 早期清除信号掩码;sshd 可能已经在一个或多个信号被屏蔽的情况下启动,会产生干扰, 例如登录宽限期计时器。
- ssh(1) : 如果无法加载基于主机的身份验证的主机密钥,则发出警告。
- sshd(8): 为hostbased auth添加服务器调试, 认证成功后排队并发送给客户端,同时也记录日志,以协助诊断HostbasedAuthentication 问题。bz3507
- ssh(1):将 IdentityFile 选项的使用记录为可用于列出公钥和私钥。GHPR352
- sshd(8):在配置解析期间检查并禁止 MaxStartups 值小于或等于零,而不是在运行时失败。 bz3489
- ssh-keygen(1) :修复在充当 CA 时,在命令行上指定的十六进制证书到期时间的解析。
- ssh-agent(1):记录“-O no-restrict-websafe”命令行选项。
- ssh(1):尊重用户的 umask(2),如果它比 ssh 默认值 (022) 更严格。
更新公告:https://www.openssh.com/releasenotes.html
展开阅读全文