如何检查linux ssh 状态
Q我怎么判断 Linux 上的 SSH 服务有没有正常运行?我想确认服务器上的 SSH 服务是否已经启动,应该通过哪些命令快速检查?如果服务没起来,通常会看到什么现象?
A检查 SSH 服务运行状态
可以使用 systemctl 查看服务状态,例如执行 systemctl status sshd 或 systemctl status ssh。若服务正常运行,状态中通常会显示 active (running)。如果服务未启动,可能会显示 inactive、failed 或提示找不到服务。
QSSH 端口是否对外开放,应该怎么确认?即使 SSH 服务启动了,我还想知道 22 端口有没有监听、外部网络能不能连上,应该检查哪些内容?
A确认 SSH 端口监听情况
可以用 ss -tlnp | grep ssh 或 netstat -tlnp | grep ssh 查看 SSH 是否在监听端口。常见默认端口是 22,如果看到对应进程在监听,说明服务已在本机开启端口。若外部仍无法连接,还要排查防火墙、安全组和网络策略。
Q连接 SSH 失败时,我该从哪些日志里排查原因?当我用 SSH 登录服务器提示拒绝连接、超时或认证失败,应该去哪里看日志来定位问题?
A通过日志定位 SSH 连接问题
可以查看系统日志来判断原因。常见位置包括 /var/log/auth.log(Debian、Ubuntu)和 /var/log/secure(CentOS、RHEL)。日志里通常会记录认证失败、密钥错误、端口拒绝、连接被中断等信息,有助于快速定位问题。
Q如果 SSH 服务已经启动,但我还是连不上,可能是什么原因?系统里看起来 SSH 正常运行,可是客户端依然无法登录,这种情况通常要检查哪些配置或环境因素?
ASSH 可运行但无法连接的常见排查项
需要检查防火墙是否放行 SSH 端口,sshd_config 是否修改了默认端口,服务器 IP 和路由是否正确,SELinux 或安全组是否限制访问,以及账号密码或密钥是否配置正确。也可以用 ssh -v 用户名@IP 查看客户端调试信息,帮助判断问题出在认证、网络还是服务配置。