SSH 连接失败是运维中非常常见的问题,一般可以从网络、服务、配置、权限、安全策略几个层面逐步排查。下面给你一套比较系统的排查思路。
IP / 域名是否正确
ping 服务器IP
端口是否正确
22ssh -p 端口号 user@ip
用户名是否正确
root 被禁止登录telnet ip 22
# 或
nc -vz ip 22
在服务器本机或带外管理(控制台)执行:
systemctl status sshd
若未启动:
systemctl start sshd
systemctl enable sshd
看是否监听:
ss -lntp | grep ssh
# CentOS
firewall-cmd --list-all
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload
# Ubuntu
ufw status
ufw allow 22
getenforce
若是 Enforcing,可临时测试:
setenforce 0
查看配置文件:
vim /etc/ssh/sshd_config
重点检查:
Port 22
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
ListenAddress 0.0.0.0
修改后重启:
systemctl restart sshd
ssh -i 私钥文件 user@ip
注意:
chmod 600 key.pem
~/.ssh/authorized_keys
客户端加 -v:
ssh -v user@ip
ssh -vvv user@ip
常见错误:
Connection refused → 服务没开 / 端口错Permission denied → 认证问题Connection timed out → 网络 / 防火墙如果 SSH 彻底连不上:
✅ 安全组没开
✅ 改了端口忘了
✅ root 被禁登
✅ 私钥权限不对
✅ fail2ban 封 IP
✅ DNS 解析慢(可加 UseDNS no)
如果你愿意,可以把 具体报错信息(如 ssh -v 的输出)发我,我可以直接帮你定位是哪一步的问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。