linux无法连接xshell是什么原因 (linux服务器能ping通连不上xshell)

问题现象:

1.A和B主机为5月16号同时安装的完全相同的2台centos,进行网络配置后(配置的静态 IP),都可以通过xshell远程连接;

2.5月17号发现,A主机可以正常xshell连接,但是B主机无法用xshell连接连接,报错如下:

linuxroot被禁用怎么登录服务器,linux系统无法通过shell连接

分析:

1.xshell报错为密码错误,于是在后台修改了密码,再试,还是这样的报错

2.登陆B主机后台,查看防火墙/selinux是否关闭,sshd是否正常,端口是否是22,经过查看都符合要求

3.通过A主机用ssh命令验证是否可以正常登陆B主机,经验证可以登陆

4.通过putty/mobaxterm测试登陆B主机,验证是否是xshell导致的无法登录,报错分别如下:

putty报错:

linuxroot被禁用怎么登录服务器,linux系统无法通过shell连接

有上面报错猜测可能是putty版本太低导致,*载下**了一个高版本putty测试,报错如下:

linuxroot被禁用怎么登录服务器,linux系统无法通过shell连接

mobaxterm报错如下:

linuxroot被禁用怎么登录服务器,linux系统无法通过shell连接

5.怀疑是sshd的问题,于是重装sshd

使用yum重装sshd的过程中发现异常:域名解析一会正常,一会不正常;

于是,ping DNS服务器IP,网络很慢;

ping www.baidu.com ,无法解析域名,而在A中这些操作是正常的

6.又在A上用ssh测试登陆了下B

又无法登陆了,重启了下主机,又正常了

7.B的网络似乎怪怪的,于是突然想起是不是IP冲突了

修改ip后,正常了

现象分析:

我们配置自己的虚拟机IP时,往往配置成静态ip ,而这个网段内的其他机器可能是DHCP自动获取IP,这时候有可能和我们手动配的静态IP冲突。

开始之所以A可以用ssh登陆B,是因为登陆的就是B,而xshell实际登陆的不是B,是和B ip冲突的主机C,输入的C的root密码不对,所以提示密码错误;

后来A又无法ssh登陆B了,是因为A这时候连的是C;我重启了下B后,A又可以重新连B了。

以上现象可以发现,IP冲突导致了,B的IP不稳定,网络也就有些怪怪的

总结:

在配置完自己的个人测试虚拟机后,不能远程登录的原因有如下几个:

1.防火墙、selinux没有关闭

2.sshd没有启动

3.网络配置不正确

4.本地windows没有关闭防火墙

5.IP冲突:防止IP冲突的方法是在配置某个IP时,先ping一下这个IP,看看是否有人在用了;在生产环境中,应该是不存在这个问题的,因为所有机器IP都是规划好的,不是DHCP自动分配的

意外收获:

1.由于在A上登陆B的时候执行ssh很慢,修改了sshd配置文件/etc/ssh/sshd_config的这个参数

UseDNS=no修改后不慢了,这是避免了DNS解析花费时间

2.在ssh命令登录服务器时,也会有相应的日志,记录在/var/log/secure,ssh相关操作异常时应该看下这个日志