解决xshell 或winscp等ssh连接不上的问题

在学习使用linux系统时,使用过一些远程连接或者传输的软件来控制虚拟机,因为虚拟机实在太卡了,发觉用xshell来学习shell是个不错的选择,但在使用的时候遇到过很多连接不上情况,如下图所示:

 遇到这种情况基本都是虚拟机的ssh出了问题,所以把遇到的不同的情况记录下来,方便以后查看。

    1. 目标机IP错误

查看一下目标机的IP地址正确与否,不一致更改一下ssh后的IP即可

ifconfig

    2.目标机ssh服务未启动

查看一下ssh服务是否启动

sudo service ssh status

若提示ssh为stop

重启一下ssh服务即可

sudo service ssh start

再次查看

ssh服务启动成功

3.防火墙挡住了ssh服务

ssh服务已启动但还是连接不上目标机,可能是防火墙挡住了ssh服务

尝试关闭防火墙后再次连接,

ubuntu系统中采用的防火墙是ufw

sudo ufw disable

centos系统中采用的防火墙是iptables

sudo chkconfig iptables off

关闭防火墙后再次连接ssh

可将ssh添加至防火墙规则中

sudo ufw allow ssh

4.目标机ssh服务未安装

若目标机中没有ssh服务,在启动ssh服务时会提示没有此项服务,在目标机中安装ssh服务即可

ubuntu中安装ssh服务为

sudo apt-get install ssh

centos中安装ssh服务为

sudo yum install ssh

安装成功后重启ssh服务,再次连接即可

5.目标机openssh-server服务未安装

由于Ubuntu中自带openssh-client服务所以,会出现Ubuntu可以ssh连接别的机器,但别的机器无法ssh连接ubuntu,若发生此种情况可查看进程中是否有sshd服务

sudo ps -e|grep ssh

若不存在则说明openssh-server服务未安装,同时/etc/init.d目录下没有ssh脚本无法通过 /etc/init.d/ssh start 来启动ssh服务。

安装openssh-server服务即可。

sudo apt-get install openssh-server

若不出现任何提示为安装成功,启动ssh服务即可,若出现以下提示:

说明Ubuntu自带的openssh-client版本与要安装的openssh-server版本不一致,需要解决他们之间的依赖关系,安装对应版本的openssh-server即可,或直接输入修复依赖关系,尝试卸载出错的包,重新安装正确版本的。

sudo apt-get -f install

安装完成后再次查看,可以看到sshd进程已启动,再次连接即可。

以上是笔者碰到的所有连接失败的情况,若再遇到不一样的错误会接着更新。

你可能感兴趣的:(linux)