大家在使用XShell工具连接Ubuntu系统时,可能会出现错误如下:
在这里插入图片描述
通过在网上查阅资料和实践解决这个问题,将我的思路分享给大家!
首先,我会先从使用Xshell连接远程服务器会涉及哪些东西上思考这个问题,即通过ssh服务连接远程服务器的整体流程是个什么样子的!
在这里插入图片描述
那么我们的排查思路,就很清晰了

1.确认SSH服务是否安装

首先,得确认ssh-server是否存在本机中。(通常会有的,由于我重装系统后,没勾选导致我没发现机器不存在该服务,那自己就先安装下咯)

ps -e | grep ssh

在这里插入图片描述
如果没有上述的画框内容你就得先进行安装事项。
SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

在这里插入图片描述
如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

然后就可以启动ssh-server服务了

sudo /etc/init.d/ssh start 

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务

2.SSH配置文件的修改

若ssh服务启动,则修改下配置文件,允许root用户远程连接。(大多数是这种情况导致的远程连接失败)我使用的Ubantu系统,该系统默认禁止root用户登录ssh。

编辑sshd_config文件,我们输入:vi /etc/ssh/sshd_config
将下图红框中的注释去掉
在这里插入图片描述
Authentication限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。
LoginGraceTime用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为妙
PermitRootLogin用来设置能不能直接以超级用户ssh登录,root远程登录Linux很危险,建议注销或设置为no
StrictModes用来设置ssh在接收登录请求之前是否检查用户根目录和rhosts文件的权限和所有权,建议开启,并使用默认值"yes"来预防可能出现的低级错误。
如果对该位置文件sshd_config有兴趣的话,可以查看博主灯塔微光的文章SSH配置文件 /etc/ssh/sshd_conf参数详细说明
重启sshd服务

service sshd restart

查看端口是否正常监听

netstat -apn | grep 22

关闭防火墙

service iptables stop
chkconfig iptables off

3. 其他情况

检查了在Xshell客户端填写的IP、连接端口、用户、密码、网络是否正确?
测试:是否能够ping通服务器,telnet 端口也能成功,使用的root用户,密码正确(从服务器B跳转到服务器A上,能够正常跳转,说明密码没有问题),网络正常。

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

还有可能会出现,端口占用,IP冲突等其他情况,更改相应的服务端口,IP地址号即可。
上述内容和步骤,也是我在网上参考各位大佬的一些解决方案之后,亲测有效的办法。希望对你解决该问题有所帮助!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐