SSH 版本决定了加密算法支持、密钥类型兼容性和安全补丁范围,运维时经常需要快速确认本地或远程主机的 SSH 版本。
ssh -V:客户端版本号
ssh -V 直接输出当前 ssh 客户端版本、构建信息和 OpenSSL 版本,是最常用的版本确认方式 [1]。注意:这条命令输出到 stderr,所以管道或重定向时需要 2>&1 捕获。
ssh -V
常见输出格式为 OpenSSH_X.Yp1 distro-info, OpenSSL Z.W.V date。其中 X.Y 是 OpenSSH 主版本,p1 是补丁级别,后面的 distro 信息是发行版自定义构建标识。
ssh -Q:查询支持的协议与密钥类型
ssh -Q 可以查询 ssh 客户端支持的特性列表,包括协议版本、密钥类型、加密算法等 [1]。protocol-version 查询会直接返回当前客户端支持的 SSH 协议版本号。
ssh -Q protocol-version
ssh -Q key-plain
ssh -Q protocol-version 返回 2 表示当前客户端支持 SSH-2 协议。ssh -Q key-plain 列出客户端支持的所有非证书密钥类型(如 ssh-ed25519、ssh-rsa、ecdsa-sha2-nistp256 等),可以用来判断远端服务器可能接受的密钥格式。OpenSSH Release Notes 记录了各版本的协议支持变化和废弃特性 [4]。
ssh -G:完整默认配置
ssh -G host 输出 ssh 连接到指定主机时的完整合并配置,包括所有默认值和配置文件覆盖后的结果 [1]。版本相关字段不会直接出现在输出中,但可以用来验证当前客户端的完整行为。
ssh -G localhost | head -20
输出第一行是 host 字段,随后逐行列出来自 ssh_config、命令行和内置默认值的全部配置项。
dpkg / apt-cache:包版本与安装状态
在 Debian/Ubuntu 系上,可以用包管理工具确认 openssh-client 的安装版本和可用更新 [3]。dpkg -l 查看已安装版本,apt-cache policy 查看安装状态和候选版本。
dpkg -l openssh-client
apt-cache policy openssh-client
输出中 ii 状态表示包已正确安装,版本号字段(如 1:9.6p1-3ubuntu13.20)中的epoch 1: 和上游版本 9.6p1 是判断版本的主要依据。apt-cache policy 还会显示是否有可用的新版本。
排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
ssh -V 提示 command not found |
openssh-client 未安装 | apt install openssh-client |
ssh -Q 输出为空 |
版本过旧不支持该查询 | 升级 OpenSSH 或查阅对应版本 man page |
dpkg -l 显示 rc 而非 ii |
包已卸载但配置残留 | dpkg --purge openssh-client 后重装 |
apt-cache policy 显示 Candidate 版本更旧 |
发行版仓库冻结在旧版本 | 检查第三方 PPA 或手动编译 |
回滚与局限性
如果安装了错误的 openssh-client 版本导致本地 ssh 无法连接远程主机,可以使用回退方案:
1. 安装 ssh-import-id 或使用 scp/sftp(基于相同 libc,通常不受 ssh 客户端版本影响)。 2. 在 /usr/bin/ssh 旁保留旧版本二进制,需要时临时调用完整路径。 3. 容器或 WSL 环境中的 ssh 版本由镜像决定,宿主机的 ssh 版本不影响容器内行为。
WSL 和容器环境中的 OpenSSH 版本由发行版仓库决定,与宿主机安装的 SSH 工具无直接关系。远端主机的 SSH 服务端版本需要通过登录后执行 sshd -V(如果服务端支持)或 ssh -V 在远端执行来确认,本地客户端版本只能反映本地安装状态 [2]。
附录
- 测试机:WSL2 Ubuntu 24.04
- 内核:Linux 6.8.0-31-generic
- 测试日期:2026-11-02
- 观察结果:
ssh -V→ OpenSSH_9.6p1 Ubuntu-3ubuntu13.20, OpenSSL 3.0.13;ssh -Q protocol-version→ 2;dpkg -l openssh-client→ 1:9.6p1-3ubuntu13.20;ssh -G localhost输出 20 行默认配置;apt-cache policy 显示 Candidate 与 Installed 版本一致。
参考资料
- [1] ssh(1) – Linux manual page(ssh)
- [2] sshd(8) – Linux manual page(sshd)
- [3] dpkg-architecture(1) – Linux manual page(dpkg)
- [4] OpenSSH Release Notes(openssh-release)
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。