1、检查

检查IP、连接端口、用户、密码、网络是否正确?

本机情况:能够ping通服务器,telnet 端口也能成功,使用的root用户,密码正确(从服务器B跳转到服务器A上,能够正常跳转,说明密码没有问题),网络正常。

物理机:

1
2
telnet 192.168.52.130 22 //物理机检测端口
ssh root@192.168.52.130 //登录一台好的服务器后,使用SSH跳转到目标服务器上,若成功,则说明密码没有问题

2、sshd的配置文件

首先看sshd的服务是否启动

1
2
3
4
5
service sshd status #查看sshd状态
如果没有启动,启动即可
service sshd start #启动sshd服务
若启动,则修改下配置文件,允许root用户远程连接
vim /etc/ssh/sshd_config

按i进入编辑模式,修改配置文件,找到#Authentication所在位置,修改成如下所示:

1
2
3
4
将这三条前的#去掉
LoginGraceTime 2m #登陆时间
PermitRootLogin yes #允许root登录
StrictModes yes #严格模式

然后按Esc退出编辑模式,再Shift+:进入命令模式,输入wq!保存并退出。

最后重启sshd服务

1
service sshd restart

3、关闭防火墙

1
service iptables stop

4、最后的办法:修改端口

在Linux终端输入

1
2
vim /etc/ssh/sshd_config
按i进入编辑模式,修改配置文件,找到#Port 22所在位置, 将注释去掉,修改成一个没用使用的端口,保存配置文件,重启sshd服务。

5、查看是否ip冲突

IP冲突是指“有另外一台服务器或者电脑的IP地址和你想要连接的服务器IP地址一样”,会造成IP冲突,导致你用xshell连接的时候连接的是可能某A服务器,也可能是某B服务器。提供两个解决思路:

1)第一种方法,把你已知这个IP的服务器,先断一下网络(拔网线),如果本机还能ping通这个IP,说明存在其他的服务器或者电脑与断网的服务器IP冲突。

2)第二种方法,网上有专门检测网络冲突的软件,可以下载一个试试。