Ubuntu 桌面版默认没有预装 SSH 服务(openssh-server),这是导致 SSH 登录失败(端口 22 连接被拒)的最常见原因。按以下步骤排查和解决:
一、先确认是否安装了 SSH 服务(核心)
Ubuntu 桌面版默认只带 SSH 客户端(openssh-client
),但没有服务端(openssh-server
),无法接收远程连接。
在 Ubuntu 桌面本地操作(必须物理或控制台登录到桌面),执行:
bash
# 检查是否安装了 SSH 服务端
dpkg -l | grep openssh-server
若输出为空(没有安装),执行安装:
bash
sudo apt update && sudo apt install openssh-server -y
二、确保 SSH 服务已启动并开机自启
bash
# 启动 SSH 服务
sudo systemctl start ssh
使用ssh远程登陆工具登陆之后,在设置开机自启
# 设置开机自启(避免重启后服务关闭)
sudo systemctl enable ssh
# 检查服务状态(确保显示 active (running))
sudo systemctl status ssh
若状态异常,参考之前提到的日志排查(
sudo journalctl -u ssh
)。
三、检查防火墙是否允许端口 22
Ubuntu 桌面版默认可能启用 ufw
防火墙,需手动允许 SSH 端口:
bash
# 允许端口22通过防火墙
sudo ufw allow 22/tcp
# 重载防火墙规则
sudo ufw reload
# 查看防火墙状态(确认 22/tcp 已允许)
sudo ufw status
四、验证远程连接
在客户端(另一台电脑)测试:
bash
# 用 SSH 连接(替换为 Ubuntu 桌面的 IP)
ssh 用户名@服务器IP # 例如:ssh ubuntu@192.168.1.100