为什么需要查看 OpenSSH 版本?
OpenSSH 是广泛使用的安全远程登录工具。了解其版本有助于:
- 确认是否支持特定功能(如 Ed25519 密钥)
- 排查连接或兼容性问题
- 评估是否存在已知安全漏洞
- 满足合规性或审计要求
查看 OpenSSH 客户端版本
在终端中运行以下命令:
ssh -V
注意:该命令输出会发送到 stderr,因此你可能会看到类似以下内容:
OpenSSH_9.2p1, OpenSSL 3.0.8 7 Feb 2023
提示:部分系统(如旧版 macOS)可能使用大写
-V,而某些发行版也接受小写 -v(但通常用于调试模式)。标准方式是 ssh -V。
查看 OpenSSH 服务端(sshd)版本
如果你有服务器访问权限,可运行:
/usr/sbin/sshd -V
同样,输出会出现在错误流中。如果路径不确定,可先用 which sshd 或 systemctl status ssh 查找。
安全提醒:直接运行
sshd -V 不会启动服务,仅显示版本信息,是安全的操作。
不同操作系统的示例
Linux (Ubuntu/Debian/CentOS)
$ ssh -V
OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
macOS
$ ssh -V
OpenSSH_9.0p1, LibreSSL 3.3.6
Windows (启用 OpenSSH 客户端后)
ssh -V
输出示例:OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
常见问题
Q: 为什么 ssh -V 没有输出?
A: 可能你的 shell 将 stderr 重定向了。尝试:
ssh -V 2>&1 强制将错误输出转为标准输出。
Q: 能否通过远程连接知道对方 SSH 服务版本?
A: 可以!SSH 协议握手时会明文发送版本字符串。例如使用 telnet 或 nc:
nc your-server.com 22
返回类似:SSH-2.0-OpenSSH_8.4p1 Debian-5