Post

Enable SSH login on Ubuntu in Multipass

ปกติแล้วหากเราใช้ Multipass เป็น VM เราสามารถ login เข้า VM โดยใช้:

1
$ multipass shell primary

แต่ว่ามีงานบางงานที่เราต้องใช้การ login เข้า VM ด้วย ssh อย่างเช่น จะทดสอบการ deploy โดยใช้พวก deployment automation tools ต่าง ๆ

ที่นี้ลอง ssh เข้า VM ดู โดยเราสามารถดู IP ได้ด้วย:

1
2
3
$ multipass list
Name                    State             IPv4             Image
primary                 Running           192.168.64.32    Ubuntu 22.04 LTS

จากนั้นลอง ssh จะพบว่าไม่สามารถเข้าได้:

1
2
3
4
$ ssh ubuntu@192.168.64.32
The authenticity of host '192.168.64.32 (192.168.64.32)' can't be established.
...
ubuntu@192.168.64.32: Permission denied (publickey).

ต่อไปเราจะ copy SSH key จากเครื่องเราโดยดู key ได้ด้วย:

1
2
$ cat ~/.ssh/id_rsa.pub
ssh-rsa ...

copy ส่วน ssh-rsa ... จากนั้นเราจะ shell เข้า VM ตัวที่เราต้องการ:

1
$ multipass shell primary

แล้วก็เพิ่ม SSH Key ใน ~/.ssh/authorized_keys ด้วย:

1
ubuntu@primary:~$ echo 'ssh-rsa ...' >> ~/.ssh/authorized_keys

ออกจาก VM ไปที่ local ของเรา แล้วลอง ssh ดูอีกครั้ง แต่ถ้ายังเข้าไม่ได้ให้ใช้คำสั่งอีก 2 คำสั่ง:

1
2
$ eval $(ssh-agent)  
$ ssh-add

เรียบร้อย

This post is licensed under CC BY 4.0 by the author.