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
2
service iptables restart (centos6)
systemctl restart iptables (centos7 )

<5>安装Openssh服务

确保系统中已安装OpenSSH服务器。不同的Linux发行版有不同的安装命令:

Debian/Ubuntu

1
2
sudo apt update
sudo apt install openssh-server

CentOS/RHEL

1
2
3
sudo yum install openssh-server
# 或者
sudo dnf install openssh-server

<6>确认服务名称

某些系统使用ssh而非sshd作为服务名。可以通过以下命令查看服务名称:

1
systemctl list-unit-files | grep -E "ssh|sshd"

然后尝试启动相应的服务:

1
2
sudo systemctl start ssh # 对于使用ssh作为服务名的系统
sudo systemctl start sshd # 对于使用sshd作为服务名的系统

查看ssh/sshd开启状态:

1
systemctl status ssh/sshd