Linux 服务器连接不上,密码正确但 ssh 提示拒绝连接怎么办?

2025-07-23 0 979 百度已收录

刚上手 Linux 服务器的新手,是不是遇到过这种情况:密码输得明明白白,ssh 连接时却跳出 “拒绝连接”,试了十几次都没用,急得想砸键盘?做开发的小郑就卡过这关,他明明记得密码没错,可 ssh root@服务器 IP 就是连不上,最后发现是 ssh 服务压根没启动。其实啊,密码对却被拒绝,问题往往不在密码上,多半是服务器的设置或服务出了小岔子。今天就说说遇到这种情况该怎么排查,步骤简单,新手跟着做就行,一起往下看吧!


先查最基础的:ssh 服务是不是没开?

你可能不知道,Linux 服务器上的 ssh 连接,得靠 “ssh 服务” 这个程序运行着才行,就像开门得先有钥匙孔。要是服务没启动,再对的密码也没用。
怎么检查?

  • 如果你能直接摸到服务器(比如机房的物理机),或者通过控制台登录(云服务器有这个功能),输入命令 “systemctl status sshd”,看看是不是 “active (running)” 状态;
  • 要是显示 “inactive (dead)”,说明服务没开,输 “systemctl start sshd” 启动就行,小郑那次就是这么解决的;
  • 新手记不住命令也别怕,云服务器控制台一般有 “远程连接” 按钮,点进去手动启动服务更简单。

为什么服务会没开?可能是服务器重启后没设自动启动,也可能是误操作被关掉了,跟密码没关系,启动了多半就能连上。


再看端口:是不是连错了 “门牌号”?

Linux 服务器的 ssh 默认用 22 端口,就像快递柜的门牌号,错了就投不进去。但有些服务器会改端口(比如为了安全改到 2222),你还用 22 端口连,肯定被拒绝。
怎么排查?

  • 问管理员:“服务器 ssh 用的哪个端口?默认 22 吗?” 小郑后来才知道,他们公司服务器改了端口,难怪连不上;
  • 要是知道端口号,连接时得加上端口,命令是 “ssh 用户名 @服务器 IP -p 端口号”(比如 ssh root@192.168.1.1 -p 2222);
  • 新手别自己乱改端口,默认 22 虽然不算最安全,但至少能保证你先连上,熟悉了再折腾其他的。

端口错了会有啥提示?多半是 “拒绝连接” 或 “连接被拒绝”,不会提示密码错,这点能和密码问题区分开。


防火墙在搞鬼?可能把你的连接拦住了

Linux 服务器连接不上,密码正确但 ssh 提示拒绝连接怎么办?
Linux 服务器的防火墙(比如 firewalld、ufw),就像门口的保安,会拦不认识的 “访客”。要是没给 ssh 端口开权限,防火墙会直接拒绝你的连接,跟密码对不对没关系。
解决方法:

  • 先试试关掉防火墙(临时测试用),命令是 “systemctl stop firewalld”(不同系统命令可能稍变),关掉后再 ssh 连接,能连上就是防火墙的问题;
  • 别一直关防火墙,不安全,正确做法是添加规则允许 ssh 端口,比如 “firewall-cmd –add-port=22/tcp –permanent”,然后重启防火墙 “firewall-cmd –reload”;
  • 云服务器还得检查 “安全组”(比如阿里云的安全组),控制台里找找有没有允许 22 端口入站,小郑公司的云服务器就因为安全组没开,关了防火墙也连不上。

防火墙为什么拦 ssh?它默认会拒绝所有外部连接,除非你明确告诉它 “允许 ssh 进来”,不然它会把所有连接当可疑分子。


配置文件改错了?ssh 可能 “不认” 你的登录方式

Linux 服务器的 ssh 有个配置文件(一般在 /etc/ssh/sshd_config),里面藏着很多规则,比如 “允许 root 用户登录吗”“密码登录开了吗”。新手要是不小心改了这些,就可能被拒绝。
常见坑点和解决:

  • 禁止 root 登录:配置文件里有 “PermitRootLogin no”,意思是不让 root 用户 ssh 登录,改成 “yes” 再重启 ssh 服务(systemctl restart sshd)就行;
  • 关闭密码登录:如果设了 “PasswordAuthentication no”,会强制用密钥登录,密码再对也没用,改成 “yes” 就能用密码连了;
  • 新手别乱改配置文件,改之前最好复制一份备份(cp /etc/ssh/sshd_config/etc/ssh/sshd_config.bak),改错了还能恢复。

怎么看配置文件?直接在服务器上输 “cat /etc/ssh/sshd_config | grep -v ‘#’”,能过滤掉注释,只看有用的规则,找上面说的那两个参数就行。


还有一种可能:你的 IP 被服务器 “拉黑” 了

输错密码次数太多,Linux 服务器可能会把你的 IP 加入黑名单(比如用了 fail2ban 这类工具),这时候就算密码对了,也会被拒绝。
怎么判断?

  • 换个网络试试,比如用手机热点连电脑再 ssh,能连上就是 IP 被拉黑了;
  • 登录服务器控制台,查看黑名单文件(不同工具位置不同,比如 fail2ban 的在 /var/lib/fail2ban/),删掉你的 IP 就行;
  • 新手怕麻烦的话,等 10-30 分钟(很多黑名单会自动解封),再试可能就好了。

为什么会拉黑?服务器怕有人暴力破解密码,输错几次就暂时不让这个 IP 连,是一种保护机制,不是针对你个人。


不同原因解决时间对比表

可能原因 解决时间(新手) 难度 最容易忽略的点
ssh 服务未启动 5 分钟 简单 忘了服务器重启后服务没开
端口错误或未开放 10 分钟 中等 云服务器安全组没同步
防火墙拦截 15 分钟 中等 同时忘了关本地防火墙
配置文件参数错误 20 分钟 较难 改完没重启 ssh 服务
IP 被拉黑 10 分钟(等解封) 简单 换网络测试这一步

小郑对照这张表,第一次花了 10 分钟找到问题,第二次 5 分钟就搞定了。他说 “按表上的顺序排查,比瞎试快多了”。


小编的心里话

遇到 ssh 拒绝连接,密码对却连不上,别死磕密码,先查基础服务和设置。新手最容易忽略的就是 “ssh 服务没启动” 和 “端口没开”,这俩解决了,八成问题就没了。配置文件和黑名单可以往后放,毕竟新手很少会碰这些。
小郑现在总结出经验:“连不上先看服务,再看端口防火墙,最后查配置,一步一步来,慌也没用。” 小编觉得也是,Linux 服务器看着复杂,其实很多问题都是 “纸老虎”,耐心排查比乱试有效,你说对吧?

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO运维 Linux 服务器连接不上,密码正确但 ssh 提示拒绝连接怎么办? https://www.tglzm.com/seo/wei-seo/3493.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务