为什么连接ssh服务器被拒绝
连接 SSH 服务器被拒绝,绝大多数情况是服务端未运行、端口号错误、防火墙拦截或登录认证失败这四个原因造成的,按这个顺序排查,问题基本能在十分钟内定位。SSH 作为远程管理 Linux 服务器的标配协议,一旦连接报错,很多新手会第一时间怀疑密码不正确,但实际上,服务端根本没监听端口的情况占比相当大。
ssh连接被拒绝是什么原因,先从服务端状态排查
当你输入 ssh root@192.168.1.100 后立刻看到 Connection refused,意味着 TCP 连接在握手阶段就被对方拒绝了,此时你要明白一件事:SSH 服务进程可能压根没启动,或者 sshd 配置文件把它限制在了别的端口。
检查 sshd 服务是否在运行
在服务器本地(或通过云控制台的 VNC 登录)执行:
systemctl status sshd
如果显示 Active: inactive (dead),说明 SSH 服务没启动,直接执行:
systemctl start sshd systemctl enable sshd
这样开机也能自动启动,使用 Debian/Ubuntu 系统的服务器,服务名可能叫 ssh 而不是 sshd,顺手执行 systemctl status ssh 看看哪个是激活状态。
行业共识认为,超过一半的“连接被拒绝”问题都出在服务没运行,特别是刚装完系统或者刚迁移过机器的场景。
确认 sshd 实际监听的端口
有些管理员出于安全考虑,把 SSH 端口从 22 改成了自定义端口,2222 或 22026,这时你用默认端口连接,自然就被拒了,在服务器上执行:
ss -lntp | grep sshd
你会看到类似 0.0.0:2222 的输出,也可以直接查看配置文件:
grep -i "^Port" /etc/ssh/sshd_config
如果这一行返回的是 #Port 22 这样的注释状态,说明用的是默认 22 端口,如果返回具体数字比如 2222,那你连接时就要带上 -p 2222 参数:
ssh -p 2222 root@服务器IP
不少国内云服务器厂商在初始镜像中就会开启这个改动,刚接手服务器的人尤其容易踩到这个坑。
防火墙和云安全组拦截导致连接超时或被拒
本地和服务端都正常,但 SSH 依然连不上,这时候就要考虑中间链路被拦截了,表现形式有两种:一直卡住直到超时,或者直接提示拒绝。

服务器本地防火墙封堵
Linux 服务器常用的防火墙工具是 iptables、firewalld 和 ufw,先检查 firewalld 是否放行了 SSH 端口:
firewall-cmd --list-all
services 列表里没有 ssh,执行:
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload
如果你改了非默认端口,就要把服务换成端口形式:
firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload
Ubuntu 系统则检查 ufw 状态:
ufw status verbose
看见 22/tcp ALLOW 才说明端口是通的,这里有个细节:ufw 默认可能只放行了 IPv4,IPv6 被忽略的情况也时有发生。
云安全组策略未放行
只要你用的是简米云、酷番云或华为云这类云服务器,控制台里的安全组规则就相当于一道前置防火墙,就算服务器内部防火墙全关了,安全组不放行 22 端口,连接依然会被拒绝,登录云控制台,找到安全组规则,看入方向有没有一条允许 TCP 22 端口(或自定义端口)的记录,来源建议填 0.0.0/0 或者你当前的办公网 IP。
这里提醒一个高频坑:你在家里的宽带 IP 是动态的,如果安全组里写死了旧 IP,换网络后就会出现“昨天能连今天连不上”的情况。
本地网络环境是否封禁 SSH
个别公司或校园网络会封掉 22 端口,快速验证的方法是用手机开热点连一下,如果手机网络下能连上服务器,说明是本地网络限制,这种情况可以临时把 SSH 端口改成 443 或别的常用出站端口来绕过,不过要注意在 sshd_config 中修改后要重启服务并放行新端口。
linux ssh连接被拒绝怎么解决,认证环节有讲究
端口通了、服务也跑着,SSH 还是拒绝,那就是卡在认证环节了,常见提示是 Permission denied 或 Too many authentication failures。
密码认证登录失败
密码输错是最简单的场景,但要注意 root 用户默认在某些系统上被禁止密码登录,检查 sshd_config 里的 PermitRootLogin 行,如果是 prohibit-password,说明 root 只能用密钥登录,密码登录会被直接拒绝,普通用户登录后用

su - 切到 root 也行,或者把这一项改成 yes 并重启 sshd。
密钥认证的权限问题和配置
你用密钥连接但被拒绝,最常见的原因有两个。
第一,私钥文件权限太开放,OpenSSH 对私钥权限非常挑剔,权限为 644 或 777 都会被拒绝,本地执行:
chmod 600 ~/.ssh/id_rsa
第二,公钥没有正确写入服务器,把公钥内容追加到服务器的 ~/.ssh/authorized_keys 文件里,注意这个文件权限要 600,.ssh 目录权限要 700,写入后再测试免密登录,成功后才算结束。
业内专家指出,相当一部分运维事故里,服务端启用了 PubkeyAuthentication 但密钥写错位置,导致新旧配置互相冲突,最终拒绝所有连接。
登录次数限制和 IP 黑名单
MaxAuthTries 参数控制最大认证尝试次数,默认 6 次,如果你用 SSH 代理(ssh -A)或者密钥链里有多个未匹配的密钥,客户端会先挨个尝试这些密钥,消耗掉次数后端上,服务端直接断掉连接,解决方式是让客户端明确指定要用的密钥:
ssh -i ~/.ssh/mykey root@服务器IP
fail2ban 这类工具会把多次连续失败的 IP 拉进黑名单,你输入密码慢了点、输错了两三次,就可能被禁掉,查看封禁状态:
fail2ban-client status sshd
确认被拉黑后,手动解除:
fail2ban-client set sshd unbanip 你的IP
远程主机标识变更导致公钥冲突
REMOTE HOST IDENTIFICATION HAS CHANGED 这个报警也属于认证拒绝范畴,服务器重装系统或重置 SSH 密钥后,客户端保存的指纹就和新的对不上了,解决方法是移除本地 known_hosts 中的旧指纹:
ssh-keygen -R 服务器IP
然后重新连接并信任新指纹,云服务器在控制台重置密码或重置密钥后经常触发这个情况,不用慌。
网络层面的其他隐蔽原因
服务端一切正常,防火墙也放行了,但 SSH 连接还是被拒绝,问题也许在网络路径上的某个环节。
运营商封禁境外 IP 的 22 端口
近年国内运营商对境外服务器的 22 端口管控较严,从大陆直连海外 VPS 时经常出现连接被拒或超时,你可以尝试用其他端口连

接,比如把 sshd 的 Port 改成 443,也可以用国内的中转服务器做跳板,先连国内机器再跳转到境外,据部分网友反馈,改用 WebSocket 或 UDP 包装的 SSH 隧道也能规避运营商限制,不过这类做法需要客户端和服务端配合安装相应工具。
路由器或物理服务器的 NAT 映射问题
如果你管理的是家里或机房的物理服务器,通过路由器转发端口时需要确认 NAT 映射正确,简单说,路由器要把公网 IP 的 2222 端口映射到内网服务器的 22 端口,映射关系写错,或者内网服务器的 IP 变了,外部连接都会被拒绝,检查方法是在内网先同网段测试 SSH,确认通之后再看路由器映射,这样能快速定位是哪一环断了。
ssh连接外网被拒绝的排查步骤速查表
按下面的顺序走一遍,能解决大多数外网场景下的 SSH 拒绝问题:
- 确认 sshd 在运行且监听端口正确。
- 测试本地
telnet 服务器IP 22看端口是否开放,拒绝就是被拦截,超时就是被丢弃。 - 检查服务器本地防火墙放行情况。
- 检查云控制台安全组入方向规则。
- 确认 PermiRootLogin 和认证方式是否匹配。
- 查看 fail2ban 等防暴力破解工具是否拉黑了你的 IP。
- 确认客户端 known_hosts 指纹没有冲突。
这里补充一个常见判断方法:如果把服务器 IP 的端口换成 80 或 443 仍然被拒,基本可以锁定防火墙或安全组问题;只有 22 端口不通而其他端口正常,则要考虑是不是运营商标记了该端口。
Q&A:linux ssh连接被拒绝怎么解决看这里
ssh连接外网被拒绝一定就是密码错了吗?
不是,密码错误只是诸多原因中的一种,并且服务端会返回 Permission denied,如果输出是 Connection refused,密码和认证都没参与,问题出在服务端未监听或端口被拦截,先看报错文案区分这两类问题,再针对性处理,效率最高。
改了 sshd_config 端口后连接被拒绝,怎么恢复?
先通过云控制台 VNC 登录服务器,执行 ss -lntp | grep sshd 看 sshd 是否在监听新端口,sshd 没有启动,执行 systemctl start sshd,然后确认防火墙放行了新端口,云服务器还要同步修改安全组规则,把新端口的 TCP 入方向加进去,一切恢复正常后,老端口的监听会消失,后续都用新端口登录。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/904770.html

