VMware虚拟机ssh无法连接的问题
1.SSH连接时出现Connection refused,如下:
报错如下:
1 | ssh: connect to host 123.123.123.111 port 22: Connection refused |
通常是由于22端口未打开、ssh服务未启动或防火墙禁止22端口等原因引起的
解决方法:
<1>查看SSH服务是否打开
1 | systemctl status sshd |
如果未启动
1 | systemctl start sshd |
<2>查看端口是否打开
1 | netstat -lnput | grep :22 |
<3>测试网络的联通性
1 | ping www.baidu.com |
如果ping不通,就检查dns
如果dns无问题,就说明是网络原因,看服务器的网线是否连接或是否有问题
<4>如果能连接外网,就查看服务器的防火墙规则,并开放ssh服务的22号端口(如防火墙未放行ssh的端口)
1 | iptables -L |
[1]直接打开端口:
1 | iptables -I INPUT -p tcp --dport 22 -j ACCEPT |
[2]永久打开端口
打开防火墙配置文件 :
1 | vim /etc/sysconfig/iptables |
在iptables文件内容中追加
1 | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT |
保存配置文件后,重启防火墙:
1 | service iptables restart (centos6) |
<5>安装Openssh服务
确保系统中已安装OpenSSH服务器。不同的Linux发行版有不同的安装命令:
Debian/Ubuntu
1 | sudo apt update |
CentOS/RHEL
1 | sudo yum install openssh-server |
<6>确认服务名称
某些系统使用ssh而非sshd作为服务名。可以通过以下命令查看服务名称:
1 | systemctl list-unit-files | grep -E "ssh|sshd" |
然后尝试启动相应的服务:
1 | sudo systemctl start ssh # 对于使用ssh作为服务名的系统 |
查看ssh/sshd开启状态:
1 | systemctl status ssh/sshd |