【服务器】无法进行ssh连接的问题逐一排查以及解决方法
一、检查服务器网络
先检查是否是网络的问题。按快捷键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服务——成功解决!