Ubuntu 22.04.5 安装后无法远程 SSH 连接的排查过程
安装完 Ubuntu 22.04.5 系统后,远程 SSH 连接这台服务器时出现了问题:IP 可以 ping 通,但 SSH 无法连接,有时能连上但很快掉线,表现非常不稳定。
以下是我的排查过程,仅供参考。
1. 检查是否安装 SSH 服务
新安装的 Ubuntu 系统可能没有默认安装 openssh-server,先确认一下:
dpkg -l | grep openssh-server
如果没有输出,说明 SSH 服务未安装,安装一下:
sudo apt update
sudo apt install openssh-server -y
2. 检查 SSH 服务是否启动
安装完成后,确认 SSH 服务是否正在运行:
sudo systemctl status ssh
如果服务未启动,可手动启动:
sudo systemctl start ssh
设置开机自启:
sudo systemctl enable ssh
3. 检查防火墙是否阻止了端口 22
Ubuntu 默认启用了 ufw 防火墙,检查其状态:
sudo ufw status
- 如果防火墙未开启,不用管。
- 如果启用了,需要开放 SSH 端口:
sudo ufw allow ssh
sudo ufw reload
如果 22 端口被占用,改为其他没有被占用的端口,连接的时候记得修改。这个如果是生产的话,建议修改,安全加固的时候不允许使用默认端口的。
4. 检查 SSH 是否监听正确的 IP 地址
确认 SSH 服务是否正常监听在所有网卡(0.0.0.0)上:
sudo netstat -tlnp | grep :22
如果只监听 127.0.0.1:22,则远程无法连接,需要修改配置文件 /etc/ssh/sshd_config 中的 ListenAddress。
5. 检查是否允许 root 登录和密码认证(root 用户)
默认情况下,Ubuntu 允许 root 用户通过密钥登录,但不允许密码登录。
执行以下命令检查当前配置:
sshd -T | grep permitrootlogin
输出为:
permitrootlogin prohibit-password
表示 root 用户 只能通过密钥登录。
需要修改配置文件中的下面这个配置(通常在 /etc/ssh/sshd_config.d/ 目录下):
PermitRootLogin yes
修改后重启 SSH 服务:
sudo systemctl restart ssh
6. 使用本机测试 SSH 是否正常工作
在服务器本地执行:
ssh localhost
如果能成功连接,说明 SSH 服务本身没有问题,问题可能出在网络、端口或远程连接配置上。
7. 检查 IP 是否冲突
网络中可能存在 IP 冲突导致连接不稳定。建议将服务器 IP 改为另一个未被占用的地址,再测试连接,我的就是这个问题。
