【服务器】无法进行ssh连接的问题逐一排查以及解决方法

avatar
作者
猴君
阅读量:3

一、检查服务器网络

先检查是否是网络的问题。按快捷键Win+R,在弹出的对话框中输入cmd。
在这里插入图片描述
点击确定运行。在cmd窗口输入ping一下服务器的ip地址。

在这里插入图片描述

如果出现请求超时,解决办法如下:

在服务器端输入ifconfig命令,查看要连接的网络的状态。如果服务器网卡正常,可能是连接时输入的ip地址错误,在xshell客户端输入正确的ip重新连接即可;否则就要重新配置网卡。

二、 检查端口是否开启

如果ip地址可以ping通,就要排查端口问题。在cmd窗口中,用telnet命令进行测试。
在这里插入图片描述

1. 如果显示连接失败,可能是端口未开,需要在服务器上查看端口信息。

netstat -ntlp|grep 22 

在这里插入图片描述

2. 输入命令后,如果没有22端口的信息,就需要开放端口号。执行以下命令后再使用xshell重新连接服务器。

在这里插入图片描述

三、 检查SSH服务

ps -le|grep ssh 

在这里插入图片描述

上图表示SSH服务已开启。如果没有启动,则需要执行命令“service ssh start”启动服务,然后重连服务器。

四、查看运行状态并启动ssh服务时报错

查看ssh运行状态:

systemctl status sshd.service 

发现服务未启动,尝试使用命令

/etc/init.d/sshd start 

启动服务,结果失败

使用命令journalctl -xe查看失败的具体原因,发现:

sshd: /lib/libcrypto.so.10: version `OPENSSL_1.0.2’ not found (required by sshd)

此时执行:

cp /usr/lib64/libcrypto.so.10 /usr/lib 

最后重启ssh即可

1. 无法loading libgcc_s.so.1的问题

再次报错:

rpm: error while loading shared libraries: libgcc_s.so.1: cannot open
shared object file: No such file or directory

libgcc_s.so.1: cannot open shared object file: No such file or
directory

这是系统乱删rpm导致再次安装包时出现 error while loading shared libraries: libgcc_s.so.1所产生的问题

解决:

安装libgcc_s.so.1

# For RedHat (or similar distributions): yum install libgcc_s.so.1  # For Debian (or similar distributions): apt-get install libgcc_s.so.1 

2. 安装libgcc 时

Error: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem. Eg.:

     1. You have an upgrade for libgcc which is missing some         dependency that another package requires. Yum is trying to         solve this by installing an older version of libgcc of the         different architecture. If you exclude the bad architecture         yum will tell you what the root cause is (which package         requires what). You can try redoing the upgrade with         --exclude libgcc.otherarch ... this should give you an error         message showing the root cause of the problem.          2. You have multiple architectures of libgcc installed, but         yum can only see an upgrade for one of those arcitectures.         If you don't want/need both architectures anymore then you         can remove the one with the missing update and everything         will work.          3. You have duplicate versions of libgcc installed already.         You can use "yum check" to get yum show these errors.        ...you can also use --setopt=protected_multilib=false to remove    this checking, however this is almost never the correct thing to    do as something else is very likely to go wrong (often causing    much more problems).        Protected multilib versions: libgcc-4.4.7-4.el6.i686 != libgcc-4.4.7-3.el6.x86_64    You could try using --skip-broken to work around the problem    You could try running: rpm -Va --nofiles –nodigest 

原理:
这是由于多个libgcc版本冲突所导致。libgcc_x86_64的版本与libgcc不同。尝试在安装libgcc_s库的同时更新libgcc_s_64库:

解决方案:

yum install libgcc.x86_64 libgcc_s.so.1 

此时重启服务器以及重启ssh服务——成功解决!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!