Multipass使用cloud-init 启动 Ubuntu 24.04 虚拟机

使用 Multipass 启动一台基于 Ubuntu 24.04 的虚拟机,并通过 cloud-init.yaml 实现自动化配置。配置内容包括创建用户、禁用 root 和密码登录、启用 SSH 公钥认证,确保系统安全且易于远程管理。只需一条命令即可快速部署完成,非常适合开发和测试场景使用。

1. 创建 cloud-config.yaml

生成 SSH 密钥对(或准备好现有公钥):

ssh-keygen -t ed25519 -C "liqixin@vm"

公钥会保存在 ~/.ssh/id_ed25519.pub 中。

创建一个名为 cloud-config.yaml 的文件:

# cloud-config.yaml
users:
  - name: liqixin
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
lock_passwd: true
ssh_authorized_keys:
  - ssh-ed25519 AAAA liqixin@vm

disable_root: true
ssh_pwauth: false

请把 ssh-ed25519 AAAA... 替换成你自己的公钥内容(~/.ssh/id_ed25519.pub 里的内容)。

2. 启动 VM

在 cloud-config 文件所在目录,运行以下命令:

multipass launch 24.04 \
  --name liqixin-vm \
  --cpus 1 \
  --memory 1G \
  --disk 10G \
  --cloud-init cloud-config.yaml

这会:

  • 下载 Ubuntu 24.04(首次执行会下载镜像)
  • 创建名为 liqixin-vm 的虚拟机
  • 启动时自动创建 liqixin 用户,并配置好免密 SSH 登录

3. 通过 SSH 登录

Multipass 默认会自动配置主机与 VM 的网络连接,你可以用以下方式连接:

multipass info liqixin-vm

输出中找到 IP 地址,例如:

liqixin-vm:
  ...
  IPv4: 192.168.64.3

然后用你的私钥直接 SSH 登录:

ssh -i ~/.ssh/id_ed25519 [email protected]

首次连接需要确认 fingerprint,之后就可以直接连了。

4. 清理 / 删除 VM

如果以后不需要这个 VM,可以这样清理:

multipass delete liqixin-vm
multipass purge

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注