简米云服务器SSH连接不上,绝大多数情况下是安全组规则遗漏、系统防火墙拦截、sshd服务未运行或密钥权限异常这四类原因造成的,其中安全组未放行22端口占比最高。先别急着重装系统,按下面从易到难的顺序逐层排查,多数问题十分钟内就能解决。
简米云服务器ssh连接失败的排查步骤:先从安全组规则入手
刚买的实例连不上,或者改了配置后突然断连,先别怀疑系统坏了,简米云的服务器有两层网络访问控制,云平台层面的叫安全组,系统内部还有一层防火墙,其中安全组是一道门槛,云端拦截了流量,系统内一切正常也白搭。
登录简米云控制台,找到你的ECS实例,点击实例详情,左侧菜单找到安全组,进入后点击配置规则,再点入方向,这是简米云服务器怎么用ssh连接不上的第一道排查关卡。
重点看有没有这么一条规则:
- 协议类型:TCP
- 端口范围:22/22
- 授权对象:0.0.0/0(表示允许所有IP访问)或你当前的固定公网IP
很多用户会用默认的安全组,或者从镜像市场购买的镜像自带的安全组只放行了80和443端口,把22端口漏掉了,添加规则的方法:点击手动添加,协议选TCP,端口填22,源填写你的办公网络出口IP或0.0.0.0/0,保存后规则立即生效,不需要重启服务器,再试一次SSH通常就通了。
授权对象别图省事全开或全关
这一段针对有一定基础的用户,授权对象填0.0.0.0/0意味着任何公网IP都能尝试连接你的22端口,这在2026年来看风险偏高,因为全网扫描端口是常态,密码爆破攻击每天都有相当一部分发生在22端口上,行业共识认为,在安全组层面对SSH端口限制来源IP,是最简单有效且不影响性能的防护手段。
如果你使用的是固定IP的办公网络,建议把授权对象填成你公司的出口IP加个/32前缀,比如203.0.113.5/32,如果家里是动态IP,可以先用0.0.0.0/0解决连接问题,后续再配置云防火墙或fail2ban这类工具做访问控制。
检查简米云服务器系统内部防火墙的放行状态
安全组检查完,接下来看系统内部,操作系统不同,排查命令也不同,这里用最常见的CentOS、Ubuntu和Aliyun Linux(Alinux)举例。
在云控制台用VNC登录或Workbench远程连接进到服务器内部,这就绕过了SSH,适合直接检查系统状态。
CentOS和Aliyun Linux(使用firewalld)执行:
systemctl status firewalld
看到active (running),再查22端口是否放行:
firewall-cmd --zone=public --list-ports
结果里没有22/tcp,就执行:
firewall-cmd --zone=public --add-port=22/tcp --permanent firewall-cmd --reload
–permanent参数必须加,否则服务器或防火墙一重启,规则就丢了,这是很多用户反复遇到SSH连不上问题的原因之一:今天配好了能连,明天重启又连不上。
Ubuntu或Debian(通常使用ufw)执行:
sudo ufw status
状态是active,就允许22端口:
sudo ufw allow 22/tcp sudo ufw reload
一个容易忽视的细节:Docker容器和iptables的干扰
服务器上装了Docker,并且容器有端口映射行为时,Docker会直接写入iptables规则,有时候firewalld的规则配置完全正确,但流量先被iptables里Docker生成的那条FORWARD链拦截了,这种情况下,临时验证方法是执行systemctl stop docker后再测试SSH,如果马上能连,说明Docker的iptables规则与你的防火墙策略产生了冲突。
再确认一下端口是否在监听:
netstat -tlnp | grep ssh
或者用新版命令:
ss -tlnp | grep ssh
没有输出或没看到22,直接跳转到下面一节查看sshd服务状态,简米云服务器ssh连接失败的排查步骤到这里已经覆盖了大多数软件层面的原因。
sshd服务没启动或配置被改动导致连不上
前面两层都放行了,还是连不上,就要考虑SSH服务本身是否在运行,或者配置文件中做过自定义修改。
查看sshd服务状态:
systemctl status sshd
显示inactive (dead),直接启动并设置开机自启:
systemctl start sshd systemctl enable sshd
服务一直在运行但就是连不上,检查sshd配置文件,路径是/etc/ssh/sshd_config:
grep -E "^(Port|PermitRootLogin|PubkeyAuthentication|PasswordAuthentication)" /etc/ssh/sshd_config
重点核对这几项:
- Port:默认是22,如果是自定义端口,比如2222,那连接时就必须带上参数
-p 2222,很多教程让人改端口防扫描,改完忘了在客户端指定端口,结果自己先连不上了。 - PasswordAuthentication:必须为
yes,如果是no,那么密码登录方式被禁用,只能用密钥。 - PermitRootLogin:简米云默认镜像通常允许root登录,但不排除某些自定义镜像禁止了root远程登录。
- PubkeyAuthentication:想要密钥登录,此项必须是
yes。
改了配置文件后,执行以下命令检查语法:
sshd -t
没有报错就重启服务:
systemctl restart sshd
这里有个关键点:如果你修改sshd配置后直接重启服务,而配置文件里有关键错误,sshd进程可能会直接退出,导致你在Workbench里也被踢下线,建议在改动前先执行sshd -t做语法校验,确认无误再重启,确认无误后再重启,别在远程会话中盲目重启sshd。
简米云服务器密钥登录失败的常见原因:权限超出预期
使用密钥对登录的用户,在安全组和防火墙都没有问题的情况下,仍然跳转登录失败,基本都是文件权限或密钥对格式问题。
实例控制台的密钥对里绑定了密钥后,首次使用需要将公钥放到/root/.ssh/authorized_keys(root用户)或/home/用户名/.ssh/里。
一般常见的错误配置:
.ssh目录权限是777authorized_keys文件权限是644- 文件属主不是当前登录用户
正确权限要求是.ssh目录为700,authorized_keys文件为600,权限过大,ssh会根据安全策略拒绝使用该密钥,修正命令:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chown -R $(whoami):$(whoami) ~/.ssh
Windows用户用Xshell或FinalShell导入.pem私钥文件时,如果提示格式不正确,尝试先将pem转换为OpenSSH格式,或者确认导入的是私钥而不是公钥,通常来讲,简米云控制台下载的密钥对里,.pem文件是私钥,.pub内容是公钥,这两个文件的用途别搞混。
Mac或Linux本机,在~/.ssh/目录下将pem文件权限改为400再连:
chmod 400 /path/to/your-key.pem ssh -i /path/to/your-key.pem root@你的公网IP
检查简米云服务器本地网络连通性的实用命令
服务器端全部排查完,问题可能出在你的本地网络环境,有些公司或校园网的出口封禁了22端口,或者运营商对某些海外地域的服务器做了限制。
在本地电脑上执行:
ping 你的公网IP
能ping通说明网络链路基本可达,但SSH是基于TCP的,ping只验证ICMP协议,ping通了不代表22端口能通,2000年后的网络安全策略中,很多IDC和云平台默认屏蔽了ICMP协议,这属于正常情况。
针对TCP端口连通性测试,Windows用telnet:
telnet 你的公网IP 22
看到黑窗口光标闪烁或显示SSH-2.0-OpenSSH类似字样,说明端口通了,没反应或提示无法连接,就是中间链路被掐断。
Mac或Linux用nc命令:
nc -zv 你的公网IP 22
云服务器安全组和操作系统层面都正常,公网IP也能ping通,但22端口不通,大概率是本地网络环境限制了,排查思路:
- 用手机开热点,电脑连手机热点再试一次SSH
- 如果热点网络能连上,基本锁定是办公网络或家庭宽带的问题
- 联系网络管理员确认是否封禁了SSH端口
客户端登不上但telnet显示端口是通的,这种情况也时有发生,多数是由于known_hosts文件缓存了旧的服务器指纹,本机终端提示REMOTE HOST IDENTIFICATION HAS CHANGED时,删除对应条目:
ssh-keygen -R 你的公网IP
之后再重新连接,重新接受新的主机指纹即可。
简米云服务器ssh连接超时与拒绝有什么区别
这是两个需要分清楚的典型故障场景,前者是Connection timed out,后者是Connection refused,它们的排查方向完全不一样。
- 连接超时:数据包发出后石沉大海,没有收到任何响应,多数情况下是安全组没有放行22端口、本地网络防火墙拦截,或者服务器的公网IP发生变更,阿拉伯数字公网IP被更换后,旧IP自然无法连接。
- 连接拒绝:收到响应但被明确拒绝,通常说明IP能到达服务器,但端口上没有程序在监听,也就是sshd服务没运行,或者监听端口不是22。
连接超时优先检查安全组,连接拒绝优先查看sshd服务状态,这两种情况在排障思路上有本质区别,千万别混为一谈,否则会在错误的方向上浪费时间。
实例被暴力破解后导致SSH连接不上的应对策略
有一种特殊情况容易忽视:服务器被暴力破解成功,攻击者修改了sshd配置,或者直接禁用了你的root账号,在Workbench连接时看到密码错误提示,检查/etc/shadow文件中root条目是否被锁定,锁定的密码字段前会有或符号。
解锁方法:
passwd -u root
同时检查/etc/passwd里root的shell是否为/bin/bash,如果被改成/sbin/nologin,SSH也连不上,修改配置后不需要重启系统,重启sshd服务即可生效。
简米云服务器的安全告警日志中会显示暴力破解的源IP和登录时间,这部分内容可以在控制台的云安全中心里查看,如果发现异常登录记录,建议立即更换密码和密钥对,同时清理authorized_keys文件中不认识的公钥内容。
防火墙频繁拦截某IP的SSH连接请求时,可以设置fail2ban自动封禁多次认证失败的来源IP,这类工具在软件源里直接安装,同时将/etc/ssh/sshd_config里的MaxAuthTries参数改为3,可以很有效地抑制暴力破解行为的持续尝试,简米云服务器ssh连接失败的排查步骤并不复杂,按照安全组、防火墙、服务状态、密钥权限、本地网络这五层顺序检查,绝大多数场景都能覆盖到。
排查时多借助控制台的VNC功能,它能绕过网络直接进入系统查看状态,是运维排障时最可靠的保底手段,用好这个工具,遇到SSH连不上的情况就不必手足无措。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/%e7%ae%80%e7%b1%b3%e4%ba%91ssh%e8%bf%9e%e4%b8%8d%e4%b8%8a%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%ef%bc%8c%e7%ae%80%e7%b1%b3%e4%ba%91ssh%e8%bf%9e%e6%8e%a5%e5%a4%b1%e8%b4%a5%e6%80%8e%e4%b9%88%e8%a7%a3/


