在 CentOS 上测试 SSH 是否连通,通常从本机测试、远程测试、端口连通性几个层面来做。下面按常见场景给你一套完整方法。
systemctl status sshd
正常应看到:
Active: active (running)
如果没启动:
systemctl start sshd
systemctl enable sshd
ssh localhost
或
ssh 127.0.0.1
✅ 能连说明 SSH 服务本身没问题
❌ 连不上说明 sshd 配置或防火墙有问题
ss -lntp | grep ssh
或
netstat -lntp | grep ssh
默认端口是:
22
ssh user@centos_ip
例如:
ssh root@192.168.1.10
✅ 能登录 = 完全正常
❌ 连接超时 = 网络 / 防火墙 / 端口问题
telnet centos_ip 22
看到类似:
SSH-2.0-OpenSSH_...
✅ 端口通
nc -vz centos_ip 22
✅ 成功示例:
Connection to 192.168.1.10 22 port [tcp/ssh] succeeded!
nmap -p 22 centos_ip
firewall-cmd --list-ports
如果没有 22:
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload
getenforce
如果是 Enforcing,一般不影响 SSH,除非改过端口。
如果 SSH 改过端口(如 2222):
ssh -p 2222 user@ip
或
nc -vz ip 2222
# 1. 服务
systemctl status sshd
# 2. 端口
ss -lntp | grep ssh
# 3. 防火墙
firewall-cmd --list-ports
# 4. 远程
ssh user@ip
如果你愿意,可以把 报错信息 或 ssh -v user@ip 的输出贴出来,我可以直接帮你定位是哪一步的问题。