今天在用Xshell远程登录我vmware安装的一台centos7系统的虚拟机时,出现连接不上的情况
具体是这种情况:
然后在网上找了各种文章来看,这里总结一下自己的解决步骤
参考:1.解决Xshell7远程连接失败(connection failed)的问题 2.CentOS7开启SSH服务(Linux)
原因
windows没有打开ssh,Linux系统没有打开sshd(只打开了ssh)
所以有问题的朋友可以先检查一下这两个功能是否打开
windows一开始是ssh和sshd都没有打开的,这个一定要去看看
具体操作(step by step)
1.检查是否安装ssh,打开一个cmd,看看输入ssh后得到的结果
如果你得到这个结果,那么就说明是安装了,那么后面的安装步骤可略过。
安装
"windoww键+i "打开 设置---->应用------>可选功能------->添加可选功能------->查找 OpenSSH 服务器,并安装
然后再检验一下是否安装,就在cmd中输入ssh,看一看能不能得到如下结果:
3.打开SSH服务
用管理员的身份运行cmd
启动SSH服务
net start sshd
然后可以看到这个
在这里插入图片描述
至此,你已经成功打开了你Windows系统的SSH服务啦
你要关闭的话
net stop sshd
重启的话
net restart sshd
4.检查Linux上sshd有没有打开
4.1 检查sshd是否打开
在终端中输入
yum list installed | grep openssh-server
如果就如上图一样出现sshd的话,那就没问题
否则就得安装sshd服务
4.2 安装sshd
我这里是centos7的操作系统,所以指令如下,其他系统指令我不太清楚
yum install openssh-server
找到了 /etc/ssh/ 目录下的sshd服务配置文件 sshd_config,用Vim编辑器打开
将文件中,关于监听端口、监听地址前的 # 号去除
然后开启远程登录许可
最后,开启使用用户名密码来作为连接验证
保存文件,退出
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 #查看端口是否添加成功: