问题现象:
1.A和B主机为5月16号同时安装的完全相同的2台centos,进行网络配置后(配置的静态 IP),都可以通过xshell远程连接;
2.5月17号发现,A主机可以正常xshell连接,但是B主机无法用xshell连接连接,报错如下:
分析:
1.xshell报错为密码错误,于是在后台修改了密码,再试,还是这样的报错
2.登陆B主机后台,查看防火墙/selinux是否关闭,sshd是否正常,端口是否是22,经过查看都符合要求
3.通过A主机用ssh命令验证是否可以正常登陆B主机,经验证可以登陆
4.通过putty/mobaxterm测试登陆B主机,验证是否是xshell导致的无法登录,报错分别如下:
putty报错:
有上面报错猜测可能是putty版本太低导致,下载了一个高版本putty测试,报错如下:
mobaxterm报错如下:
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相关操作异常时应该看下这个日志