今天在用Xshell远程登录我vmware安装的一台centos7系统的虚拟机时,出现连接不上的情况

具体是这种情况:

xshell连接 docker centos7镜像 xshell 链接console_远程登录


然后在网上找了各种文章来看,这里总结一下自己的解决步骤

参考:1.解决Xshell7远程连接失败(connection failed)的问题 2.CentOS7开启SSH服务(Linux)

原因

windows没有打开ssh,Linux系统没有打开sshd(只打开了ssh)

所以有问题的朋友可以先检查一下这两个功能是否打开
windows一开始是ssh和sshd都没有打开的,这个一定要去看看

具体操作(step by step)

1.检查是否安装ssh,打开一个cmd,看看输入ssh后得到的结果

xshell连接 docker centos7镜像 xshell 链接console_服务器_02


如果你得到这个结果,那么就说明是安装了,那么后面的安装步骤可略过。

安装
"windoww键+i "打开 设置---->应用------>可选功能------->添加可选功能------->查找 OpenSSH 服务器,并安装

然后再检验一下是否安装,就在cmd中输入ssh,看一看能不能得到如下结果:

xshell连接 docker centos7镜像 xshell 链接console_linux_03


3.打开SSH服务

用管理员的身份运行cmd

启动SSH服务

net start sshd

然后可以看到这个

在这里插入图片描述

xshell连接 docker centos7镜像 xshell 链接console_linux_04

至此,你已经成功打开了你Windows系统的SSH服务啦

你要关闭的话
net stop sshd
重启的话
net restart sshd

4.检查Linux上sshd有没有打开

4.1 检查sshd是否打开
在终端中输入

yum list installed | grep openssh-server

xshell连接 docker centos7镜像 xshell 链接console_服务器_05

如果就如上图一样出现sshd的话,那就没问题
否则就得安装sshd服务

4.2 安装sshd
我这里是centos7的操作系统,所以指令如下,其他系统指令我不太清楚

yum install openssh-server

找到了 /etc/ssh/ 目录下的sshd服务配置文件 sshd_config,用Vim编辑器打开

将文件中,关于监听端口、监听地址前的 # 号去除

xshell连接 docker centos7镜像 xshell 链接console_远程登录_06


然后开启远程登录许可

xshell连接 docker centos7镜像 xshell 链接console_centos_07


最后,开启使用用户名密码来作为连接验证

xshell连接 docker centos7镜像 xshell 链接console_远程登录_08


保存文件,退出

3、 开启 sshd 服务,输入 sudo service sshd start
检查 sshd 服务是否已经开启,输入ps -e | grep sshd

或者输入netstat -an | grep 22 检查 22 号端口是否开启监听

4 防火墙配置

systemctl enable firewalld.service #设置开机启用防火墙
 systemctl disable firewalld.service #设置开机禁用防火墙
 systemctl start firewalld #启动防火墙
 systemctl stop firewalld #关闭防火墙
 systemctl status firewalld #检查防火墙状态
 firewall-cmd --list-ports #查看防火墙开放的端口

配置防火墙,开放22端口:

firewall-cmd --zone=public --add-port=22/tcp --permanent #向防火墙中添加端口
 –zone #作用域
 –add-port=80/tcp #添加端口,格式为:端口/通讯协议
 –permanent #永久生效
 firewall-cmd --permanent --zone=public --add-service=ssh
 firewall-cmd --reload #使防火墙规则生效
 firewall-cmd --zone=public --query-port=22/tcp #查看端口是否添加成功: