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

服务器 0

一、检查服务器网络

先检查是否是网络的问题。按快捷键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服务——成功解决!

也许您对下面的内容还感兴趣: