在日常运维和安全排查中,准确查看SSH服务的版本号是一项基础但关键的操作。这不仅有助于判断系统是否运行着存在漏洞的旧版本,还能为升级或兼容性测试提供依据。本文将介绍几种常用且可靠的方法,帮助你在Linux系统中快速获取SSH版本信息。
SSH(Secure Shell)是远程登录和管理Linux服务器的核心工具。历史上,OpenSSH曾多次曝出高危漏洞(如CVE-2020-14145、CVE-2023-38408等),及时确认当前版本是否受影响至关重要。例如,某企业曾因未及时发现其服务器仍在运行OpenSSH 7.4p1,导致被利用漏洞植入挖矿程序,造成严重资源损耗。
最直接的方式是在终端输入:
ssh -V
注意:该命令输出的是客户端的OpenSSH版本,且会直接打印到标准错误(stderr),因此有时需重定向才能看到完整信息。例如,在Ubuntu 22.04上执行后,你可能会看到类似 OpenSSH_8.9p1, OpenSSL 3.0.2 15 Mar 2022 的输出。这一细节常被新手忽略,误以为命令“没反应”。
若想确认服务端(即sshd)的版本,可运行:
sshd -V
不过,出于安全考虑,许多发行版默认禁止直接执行该命令。此时可改用:
/usr/sbin/sshd -V 2>&1 | head -n 1
例如,在CentOS 7环境中,这条命令能稳定返回 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017,帮助管理员快速定位服务端版本。
对于基于Debian/Ubuntu的系统,可使用:
dpkg -l | grep openssh-server
而在RHEL/CentOS/Fedora系统中,则用:
rpm -q openssh-server
这种方法的优势在于能精确显示已安装软件包的完整版本号,包括发行版特定的修订标识。比如,某次安全审计中,运维人员正是通过 rpm -q 发现系统虽显示为OpenSSH 8.0,但实际包含Red Hat的安全补丁(如 openssh-server-8.0p1-6.el8_5.1),从而避免了不必要的升级风险。
掌握上述三种方法,不仅能应对不同场景下的版本核查需求,还能提升系统安全响应效率。记住:定期检查SSH版本,并与官方安全公告对照,是保障服务器安全的第一道防线。