Multipass 是 Ubuntu 开发的一个虚拟机系统,目前仅支持 Ubuntu 虚拟机安装。
默认是没办法 ssh 远程登陆到 multipass vm 的。如果确实有需求,那么可以使用 cloud-init.yaml 文件,官方用例:Cloud config examples - cloud-init 23.1.1 documentationContentsMenuExpandLight modeDark modeAuto light/dark mode
为了归档,我事先在宿主机的用户目录下新建一个 multipass 的目录,后期将在物理机上生成的密钥对和 cloud-init.yaml 文件都存放在该目录下:
{23-03-17 21:02}ubuntu-leazhi:~ leazhi% mkdir multipass
1.进入新建的目录:
{23-03-17 21:03}ubuntu-leazhi:~ leazhi% cd multipass
2.使用 ssh-keygen 在当前目录下生存密钥对:
{23-03-17 20:36}ubuntu-leazhi:~/multipass leazhi% ssh-keygen -C ubuntu -f multipass-ssh-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in multipass-ssh-key
Your public key has been saved in multipass-ssh-key.pub
The key fingerprint is:
SHA256:rneKorNllqHkMuOptt36BfckCOF87laAjS3yIvBa/74 ubuntu
The key's randomart image is:
+---[RSA 3072]----+
| . |
| o * |
|.. B = |
|..o = o |
|..+..+ +S. |
|.=.o.o+.+ |
|= o *o ... |
|.=+++..o. . |
|+++*o=Eo.o |
+----[SHA256]-----+
密钥对生成后,查看下公钥内容:
{23-03-17 21:05}ubuntu-leazhi:~/multipass leazhi% cat multipass-ssh-key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDbnulxDESmdJ7xzNMy7Y+NJM2eMnBhZSe2ADf1yegI/JhuWs4gBJUw0pRbosSBCGGPJZysm9/kR9XrU5NtYCVoSSDX30YMwxguuAdpqF34UjLXkEQ4WeJdVV5WYhtIL95ndcB+dGvLkcPGLfaMNqfDFoGl//ZxpGcJFLg0Alej0z33PNEVbsSmUr9L6JQlOba09YOGzZbHLUjOcC1y/rFrhKV5POriwitcuh7TNZqKFuDarnvNm7SOmPoPyvnPYmFDdXPqlTwHrW1CvkZjhttL/bWkupv3dVvrOR6pVVQAzOdrZeEdu6n43AL1Gp3yExdY44/PzsUCeMKyURph8xL1GCmwNEcSOBJBjKamUqyHlXoXq4Cc8kF/uG+zmFVrZ9gc1Vg+fccY35pTyt8kE3/SkAAdpi5a+lTUEjkVvvqU7NnxBO7PYbNjw4wJhikuvr+YoeXGaDY9qA4MSuEvGbfByFZWdbNzxauBDp3gyObMWxXjIiXUig9aU20H0Ry9mo8= ubuntu
3.在当前目录下新建 cloud-init.yaml 文件,内容为:
{23-03-17 21:05}ubuntu-leazhi:~/multipass leazhi% cat cloud-init.yaml
users:
- default
# 登陆用户名
- name: ubuntu
sudo: ALL=(ALL) NOPASSWD:ALL
# 公钥内容
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDbnulxDESmdJ7xzNMy7Y+NJM2eMnBhZSe2ADf1yegI/JhuWs4gBJUw0pRbosSBCGGPJZysm9/kR9XrU5NtYCVoSSDX30YMwxguuAdpqF34UjLXkEQ4WeJdVV5WYhtIL95ndcB+dGvLkcPGLfaMNqfDFoGl//ZxpGcJFLg0Alej0z33PNEVbsSmUr9L6JQlOba09YOGzZbHLUjOcC1y/rFrhKV5POriwitcuh7TNZqKFuDarnvNm7SOmPoPyvnPYmFDdXPqlTwHrW1CvkZjhttL/bWkupv3dVvrOR6pVVQAzOdrZeEdu6n43AL1Gp3yExdY44/PzsUCeMKyURph8xL1GCmwNEcSOBJBjKamUqyHlXoXq4Cc8kF/uG+zmFVrZ9gc1Vg+fccY35pTyt8kE3/SkAAdpi5a+lTUEjkVvvqU7NnxBO7PYbNjw4wJhikuvr+YoeXGaDY9qA4MSuEvGbfByFZWdbNzxauBDp3gyObMWxXjIiXUig9aU20H0Ry9mo8= ubuntu
4.使用 multipass launch cloud-init.yaml 命令创建 vm ,如下:
{23-03-17 21:07}ubuntu-leazhi:~/multipass leazhi% multipass launch -n vm04 --cloud-init cloud-init.yaml --network bridged
Launched: vm04
vm 创建完成后,使用命令 multipass list 查看 IP:
{23-03-17 20:56}ubuntu-leazhi:~/multipass leazhi% multipass list
Name State IPv4 Image
vm01 Running 10.38.85.180 Ubuntu 22.04 LTS
192.168.3.109
vm02 Running 10.38.85.84 Ubuntu 22.04 LTS
192.168.3.111
vm03 Running 10.38.85.85 Ubuntu 22.04 LTS
192.168.3.112
vm04 Running 10.38.85.181 Ubuntu 22.04 LTS
192.168.3.114
5.用获取到的 IP 进行 ssh 登陆:
{23-03-17 20:55}ubuntu-leazhi:~/multipass leazhi% ssh -i ~/multipass/multipass-ssh-key ubuntu@192.168.3.114 -o StrictHostKeyChecking=no
Warning: Permanently added '192.168.3.114' (ED25519) to the list of known hosts.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-67-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Fri Mar 17 20:57:44 CST 2023
System load: 0.09375
Usage of /: 15.1% of 9.51GB
Memory usage: 24%
Swap usage: 0%
Processes: 115
Users logged in: 0
IPv4 address for enp5s0: 10.38.85.181
IPv6 address for enp5s0: fd42:66a1:b8ff:41e3:5054:ff:fe26:6ed7
IPv4 address for enp6s0: 192.168.3.114
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@vm04:~$
本文暂时没有评论,来添加一个吧(●'◡'●)