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