【服务器管理】ssh无法登录服务器,主机重启ssh服务失败的解决方案

背景

实验室某服务器主机出现如下问题:xxx,那个123节点昨天下午开始ssh连接不上了,可以ping 通~你走之前可以帮我看一下麽?
我验证了以下,发现确实可以ping得通,但是ssh连接提示如下(假设服务的IP为:123.11.22.123,IP为随机写的):

ssh: connect to host 123.11.22.123 port 22: Connection refused

这种情况,可能是防火墙的原因,也可能是ssh服务没有启动成功。

查看防火墙配置

使用以下命令查看防火墙状态:

sudo ufw status

发现防火墙正常允许22端口访问,如下所示:

Status: active
To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                               
22/tcp                     ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)               
22/tcp (v6)                ALLOW       Anywhere (v6)

因此,不是防火墙的原因。

备注:如果是防火墙拦截的原因,则直接allow ssh连接即可,如下所示:

sudo ufw allow ssh

查看ssh服务是否成功开启

sudo su
systemctl status ssh.service

返回的结果出现Failed,说明ssh服务没有成功启动

尝试重启ssh服务

sudo service ssh start
/etc/init.d/ssh start
/etc/init.d/ssh restart

这些操作都尝试之后,发现ssh服务仍然没有启动成功,重启服务器主机,发现也没能解决问题。

卸载原来的ssh并且重装新的ssh

1、卸载目前的ssh:

sudo apt-get autoremove --purge openssh-server openssh-client

2、重装新的ssh

sudo apt-get update
sudo apt-get install openssh-server openssh-client

3、查看ssh进程

ps -e | grep ssh

返回如下:

4820 ?        00:00:00 sshd

说明已经启动ssh服务。如果你的ssh服务没有启动,可以使用如下命令:

sudo service ssh start

4、查看ssh状态

systemctl status ssh.service

返回如下所示结果,说明ssh服务正常启动
在这里插入图片描述
5、使用ssh连接服务器,发现已经可以成功连接,问题成功解决!

总结

如果突然发生ssh无法连接到服务器,首先看看是否能ping得通服务器,ping得通说明不是网络的原因;然后查看服务器的防火墙设置,看看ssh连接的端口是否被deny了,或者限制了访问的IP源地址;其次,查看ssh服务是否成功启动,尝试重启ssh服务看看能否解决问题;最后,尝试卸载当前的ssh软件,重新安装新的ssh软件。对于新手来说,重装ssh软件,远比修改ssh的配置文件来得简单方便!

### Ubuntu SSH 连接远程服务器失败解决方案 当遇到Ubuntu系统下SSH连接远程服务器失败的情况时,可能由多种原因引起。以下是详细的排查和解决方法: #### 1. 检查网络连通性 确保本地机器能够访问目标服务器所在的网络环境。可以尝试使用`ping`命令测试与服务器之间的网络连通情况。 ```bash ping server_ip_address ``` 如果无法获得回应,则可能是由于物理线路问题或是路由配置不当造成的,需联系网络管理员确认具体情况[^2]。 #### 2. 验证SSH服务运行状况 登录到目标Linux主机上执行如下指令来验证OpenSSH Server是否正常启动以及监听指定端口(默认为TCP/22): ```bash sudo systemctl status sshd.service netstat -an | grep ':22' ``` 若发现sshd未处于活动状态或不存在相应记录,则应考虑重新安装openssh-server包并重启服务进程[^3]: ```bash sudo apt update && sudo apt install openssh-server -y sudo service ssh restart ``` #### 3. 调整防火墙设置 对于采用UFW作为防火墙管理工具的操作系统而言,在完成上述两步之后仍存在连接超时现象的话,很可能是防火墙上阻止了外部请求到达本机22号端口所致。此时可通过下面几条语句开启必要的权限授予: ```bash sudo ufw status verbose # 查看当前策略详情 sudo ufw enable # 启动防护机制 sudo ufw allow 22/tcp # 添加例外规则放行SSH流量 ``` 另外值得注意的是部分云服务商可能会额外设有安全组规则限制进出站数据流,请同步核查平台控制台内对应实例的安全属性设定项以排除潜在干扰因素. #### 4. 排除密钥认证障碍 针对基于公私钥对实现身份验证方式下的场景来说,还需留意客户端所提交的身份凭证文件(.pub)是否已被正确放置于远端用户的~/.ssh目录之下,并赋予恰当读写权限;与此同时也要保证authorized_keys文档里包含了合法有效的public key字符串内容[^1]. ```bash chmod 700 ~/.ssh/ chmod 600 ~/.ssh/* cat id_rsa.pub >> ~/.ssh/authorized_keys ``` 以上措施基本涵盖了大部分常见情形下的处理思路,具体实施过程中可根据实际报错提示灵活调整应对策略。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YirongChen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值