首页 > Sysadmin > 正文

Linux 查看 SSH 版本:客户端与服务端详解

huyuanwen 2026-11-02 Sysadmin

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 版本一致。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。