一、前言
很多新手使用 VMware/VirtualBox 安装 Ubuntu 后,习惯用 Xshell 远程操控服务器,复制粘贴、窗口管理更加方便。 Ubuntu 系统默认未开启 SSH 远程服务,需要先在虚拟机内部配置服务端,再配置 Xshell 客户端才能正常连接。本文分两大阶段讲解完整操作,附带常见报错解决方案。
二、第一阶段:Ubuntu 服务端配置(必须先操作)
1. 安装、启动 SSH 服务并设置开机自启
Ubuntu 原生不带 SSH 服务端 openssh-server,需要手动安装:
sudo apt update sudo apt install openssh-server -y
设置开机自启并立即启动服务:
sudo systemctl enable --now ssh
查看运行状态,出现active (running)代表启动成功:
sudo systemctl status ssh
2. 查看 Ubuntu 本机 IP 地址
记录 IP 用于 Xshell 连接,执行命令:
ip a
找到网卡中inet后的地址即为本机 IP。
3. 防火墙放行 SSH 22 端口(防火墙开启时必做)
sudo ufw status
Status: active → 防火墙已开启;Status: inactive → 防火墙关闭
若系统防火墙处于启用状态,需要放行远程连接默认 22 端口:
sudo ufw allow 22/tcp
4. 可选配置:允许 Root 账号远程密码登录
安全机制限制:Ubuntu 默认禁止 root 账号通过密码远程登录。 如需使用 root 连接,先设置 root 密码,再修改 SSH 配置:
设置 root 密码
sudo passwd root
写入允许 root 登录配置并重启 ssh 服务,
向/etc/ssh/sshd_config文件输入 PermitRootLogin yes ,并重启了 SSH 服务。
echo "PermitRootLogin yes" | sudo tee -a /etc/ssh/sshd_config && sudo systemctl restart ssh
三、第二阶段:Xshell 客户端连接配置
新建会话打开 Xshell 软件,顶部菜单栏点击【文件】→【新建】。
基础连接参数填写在新建会话属性页面配置:
名称:自定义标识(例:Ubuntu 虚拟机)
协议:SSH
主机:填写前面查询到的 Ubuntu IP 地址
端口号:默认 22,无需修改
配置账号密码验证左侧切换【用户身份验证】:
用户名:普通账号 或 root(提前开启 root 登录权限)
密码:对应系统账号的登录密码
建立连接点击确定保存会话,左侧会话列表双击会话即可远程登录 Ubuntu 终端。
四、常见连接报错排查
Connection refused ,连接被拒绝, 原因:Ubuntu 未安装 openssh-server,或 ssh 服务未正常启动。 解决:重新执行安装与启动 ssh 命令,查看服务运行状态。
Connection timed out ,连接超时, 原因:IP 地址填写错误、虚拟机与宿主机网络不通、防火墙未开放 22 端口。 解决:核对 ip a 查询的 IP、检查虚拟机网络模式、放行 22 端口。
密码正确但登录失败,原因:未开启 root 远程登录权限,修改配置后没有重启 ssh 服务。 解决:执行允许 root 登录的命令并重启 ssh。