在虚拟机中配置SSH连接Ubuntu的完整指南
在现代开发环境中,虚拟机(VM)是测试、学习和部署应用的常用工具,Ubuntu作为最受欢迎的Linux发行版之一,经常被部署在虚拟机中,通过SSH(Secure Shell)协议,用户可以安全地远程访问和管理Ubuntu虚拟机,无需依赖图形界面,本文将详细介绍如何在虚拟机中安装和配置Ubuntu,并启用SSH服务,确保连接的安全性和稳定性。

虚拟机环境准备
在开始之前,需要确保虚拟机软件已正确安装并配置,常用的虚拟机软件包括VMware Workstation、VirtualBox和Hyper-V,本文以VirtualBox为例,步骤如下:
- 下载并安装VirtualBox:从官网(https://www.virtualbox.org/)下载适合操作系统的版本,并完成安装。
- 下载Ubuntu镜像:访问Ubuntu官网(https://ubuntu.com/download/desktop)下载最新的桌面版或服务器版ISO文件,服务器版更适合SSH远程管理,占用资源更少。
- 创建虚拟机:打开VirtualBox,点击“新建”,设置虚拟机名称(如“Ubuntu-SSH”)、类型(Linux)和版本(Ubuntu 64-bit),分配内存(建议至少2GB)和硬盘空间(建议至少25GB)。
- 安装Ubuntu:挂载ISO文件,启动虚拟机并按照提示完成安装,安装过程中,建议选择“最小安装”以减少不必要的组件。
安装和启用SSH服务
Ubuntu默认可能未安装SSH服务,尤其是服务器版镜像,以下是安装步骤:
- 更新系统包列表:
sudo apt update sudo apt upgrade -y
- 安装OpenSSH服务器:
sudo apt install openssh-server -y
- 检查SSH服务状态:
sudo systemctl status ssh
若显示“active (running)”,则表示服务已成功启动。
配置SSH服务
为了增强安全性,需对SSH服务进行基本配置:
-
编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
修改以下参数:
Port 22:默认端口,可自定义(如2222)以减少攻击风险。PermitRootLogin no:禁止root用户直接登录,改用普通用户。PasswordAuthentication yes:允许密码认证(若使用密钥认证,可设为no)。PubkeyAuthentication yes:启用密钥认证,更安全。
-
重启SSH服务:
sudo systemctl restart ssh
配置虚拟机网络
SSH连接依赖于网络,需确保虚拟机与主机处于同一网络中,VirtualBox提供三种网络模式:

| 网络模式 | 说明 | 适用场景 |
|---|---|---|
| NAT | 虚拟机通过主机共享IP,外部无法直接访问 | 简单上网,无需端口转发 |
| 桥接模式 | 虚拟机直接连接局域网,获得独立IP | 需要让虚拟机在局域网中可见 |
| 仅主机模式 | 虚拟机与主机通信,无法访问外部网络 | 安全隔离环境 |
推荐使用桥接模式,使虚拟机获得与主机同网段的IP地址,配置步骤:
- 在VirtualBox中选中虚拟机,点击“设置”>“网络”>“网卡1”。
- 将“连接方式”设为“桥接网卡”,并选择物理网卡(如以太卡或Wi-Fi)。
获取虚拟机IP地址
通过以下命令查看Ubuntu虚拟机的IP地址:
ip addr show
找到eth0或ens33接口下的inet地址(如168.1.100),若无法获取IP,检查网络配置或重启网络服务:
sudo systemctl restart networking
从主机连接Ubuntu虚拟机
以Windows、macOS或Linux主机为例,使用SSH客户端连接:
-
Windows用户:
- 使用PowerShell或命令提示符:
ssh username@192.168.1.100
- 或使用第三方工具如PuTTY或Xshell。
- 使用PowerShell或命令提示符:
-
macOS/Linux用户:
直接打开终端,输入上述命令。
首次连接时,系统会提示保存主机密钥(输入yes),之后输入用户密码即可登录。

使用SSH密钥认证(可选)
密码认证可能存在暴力破解风险,建议使用SSH密钥对:
-
在主机生成密钥对:
ssh-keygen -t rsa -b 4096
按提示生成公钥(
~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa)。 -
将公钥复制到虚拟机:
ssh-copy-id username@192.168.1.100
输入密码后,公钥会被添加到虚拟机的
~/.ssh/authorized_keys文件中。 -
禁用密码认证:
编辑/etc/ssh/sshd_config,设置PasswordAuthentication no,并重启SSH服务。
常见问题排查
- 连接超时:检查虚拟机是否开机、SSH服务是否运行,以及防火墙设置(
sudo ufw status)。 - 拒绝连接:确认IP地址正确,尝试关闭虚拟机防火墙:
sudo ufw disable。 - 权限问题:确保
~/.ssh目录权限为700,authorized_keys文件权限为600:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
通过SSH管理Ubuntu虚拟机可以显著提升工作效率,减少对图形界面的依赖,本文从虚拟机搭建、SSH安装配置到网络安全实践,提供了完整的操作指南,合理利用网络模式、密钥认证和防火墙规则,能够确保远程连接既便捷又安全,对于开发者或系统管理员而言,掌握SSH技能是管理Linux服务器的必备能力。



















