我与服务器的斗争
“ssh服务器拒绝了密码 请再试一次” 这个问题刚开始是同事发现的,这是一台物理机。
正常出现这个问题主要是因为用户名和密码错误,或者类似于开启了不能远程直接使用root用户登录服务器造成的
但我所遇到的不是这个情况。
如果直接用ssh工具连接服务器会连接失败并提示 “ssh服务器拒绝了密码 请再试一次” ,但使用其他服务器跳转到这台服务器毫无问题:
ssh root@IP
这么来登录这台服务器,如果光是这样问题还好定位,最夸张的是每次重启机器,或者重启ssh服务后,
机器在一段时间内可以通过ssh工具直接连接,而过了这段时间又会出现 “ssh服务器拒绝了密码 请再试一次” 的提示。这样问题定位就比较难了,刚开始改配置文件
/etc/sshd/ssh_config
PermitRootLogin without-password
改成
PermitRootLogin yes
也没什么卵用。重启ssh服务后系统能用ssh工具直接登录一段时间,过后又登不上去。看了下其他正常机器的配置文件,也没有修改这个配置,然后过了一个周六周日,周一的时候觉得可能是 ssh 的问题。我将一台能正常连接的服务器 .ssh 目录下的文件清空了,然后去尝试连接这台 “非正常服务器” 发现直接连接不上了,这时我脑中灵光一闪,应该是找到原因了。之前我在这些服务器上配置过免密登录,后来文件被被人改过,免密失效了。正式因为之前配置过免密登录,然后文件被修改了,才会出现ssh工具无法直接连接的问题。 当我 重新配置ssh免密登录 后,这个问题又好了一会儿,过会儿又连接不上了,坑啊。配置好的连接居然提示
说密钥不正确了,刚刚才保存的密钥就不正确了!!!!问了同事也都说没有动服务器。我静下心来仔细捋一下,既然密钥不对,那我临时保存一下密钥,然后打开我本机上 C:\Users[用户名]\ssh 目录下的 known_hosts 文查看了一下密钥,发现刚刚保存下来的密钥的加密算法和密钥长度都与我在服务器上使用的不同。
那么问题找到了。
出现这样的问题只能是ip冲突,其他同事的服务器占用了我当前服务器的ip地址,我现在连接的服务器是别人的服务器。
而重启服务器会重新向网关注册ip地址,我重启时把对方顶下去,对方重启时把我顶下去。。
这么一来也就解释了刚才出现的一段时间内能连的问题,而从一台服务器能正常连接另一台服务器是因为这两台服务器在一个机架上,用同一台交换机tcp/ip协议优先搜索距离最近的机器,所以从服务器上跳转没有问题。
之后联系了网络管理员,对公司的ip段进行了整理规划,并找到了发生ip冲突的机器,至此真相大白。