Multipassの仮想マシンにssh接続する
はじめに
Multipass上の仮想マシンにホストマシンからssh接続したい場面があったのでその手順をまとめます。
環境と前提
以下を前提としています。
- ホストマシンはmacOS
- Multipassはインストール済みとする
なお、以降の作業は、SSHで仮想マシンやサーバに接続するための一般的な方法であるため、macOSでなくてもWindowsでもLinuxでも基本的に作業は同じだと思います。 Multipassのインストールがまだの場合は、以下にMultipassをmacOSにインストールする手順をまとめています。
M1、M1 Pro、M1 MaxなどのApple Siliconを搭載しているMacbookProでの開発環境整備のために、仮想環境を構築できるMultipassをインストールしました。その手順をまとめます。
Mac側で接続用の公開鍵を生成する
macOSのターミナルで以下のようにssh-keygen
コマンドを実行して仮想マシンにアクセスするための公開鍵と秘密鍵を作成します。以下ではubuntuvm
という名前を公開鍵と秘密鍵につけています。ここは特に指定しなくてもOKです。指定しない場合は、秘密鍵としてid_rsa
、公開鍵としてid_rsa.pub
が作成されます。
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mymac/.ssh/id_rsa): ubuntuvm
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ubuntuvm
Your public key has been saved in ubuntuvm.pub
The key fingerprint is:
SHA256:alkdekdjr94d972h4ot8yo24htoU
mymac@mymacnoMacBook-Pro.local
The key's randomart image is:
+---[RSA 4096]----+
| . |
| . + . |
| .+ + . |
| . =. o . . .|
|. oD.= A o o |
|.++o+ + o o |
|.o...+ = . + o . |
| o+=.C o o o.o |
| .o+= O . .o+o |
+----[SHA256]-----+
生成されたものを確認すると、以下のようにubuntuvm
というファイル名の秘密鍵とubuntuvm.pub
というファイル名の公開鍵の2つが生成されます。
$ ls
config known_hosts ubuntuvm ubuntuvm.pub
続いて以下を実行して作成した公開鍵の中身をターミナルに表示します。
$ cat ~/.ssh/ubuntuvm.pub
ssh-rsa AKSJSSSSSJSO...
...省略...
mymac@mymacnoMacBook-Pro.local
上記のようにssh-rsa..
から始まる文字列が表示されるので、これを全てそのままコピーしておきます。
Multipassの仮想マシンのauthorized-kyesに追記する
ここからは仮想マシン側での作業になります。
前節までにコピーしたsshの公開鍵の値を以下のように~/.ssh/authorized_kyes
にペーストします。
ssh-rsa AKSJSSSSSJSO...
...省略...
mymac@mymacnoMacBook-Pro.local
configに設定する
macOS側の作業になりますが、以下のようにmacの~/.ssh/config
に仮想マシンへのSSH接続用の設定を追加しておくと楽になります。以下の中の192.168.64.2
はMultipass上で動作するUbuntuのIPアドレスになります。MultipassではデフォルトのUser名がubuntu
であるため、以下でもユーザ名としてUser ubuntu
としています。
Host ubuntuvm
HostName 192.168.64.2
Port 22
IdentityFile ~/.ssh/ubuntuvm
User ubuntu
接続する
あとは~/.ssh/config
に設定した内容を使って、以下のようにsshコマンドを実行すればMultipass上のUbuntuにSSH接続できます。以下のssh
に続くubuntuvm
は、前節で~/.ssh/config
に指定したホスト名Host ubuntuvm
が該当します。
接続してみると以下のようになります。
$ ssh ubuntuvm
The authenticity of host '192.168.64.2 (192.168.64.2)' can't be established.
ED25519 key fingerprint is SHA256:WuSfOqUaZBplvBvcN4yyE4LNQpaDVZCsPVBrECc03Gw.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.64.2' (ED25519) to the list of known hosts.
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Dec 28 01:47:12 JST 2021
System load: 1.47
Usage of /: 25.6% of 19.22GB
Memory usage: 74%
Swap usage: 0%
Processes: 140
Users logged in: 1
IPv4 address for enp0s1: 192.168.64.2
IPv6 address for enp0s1: fd16:19b2:f10d:2c06:5054:ff:fe19:bd4b
* Super-optimized for small spaces - read how we shrank the memory
footprint of MicroK8s to make it the smallest full K8s around.
https://ubuntu.com/blog/microk8s-memory-optimisation
0 updates can be applied immediately.
*** System restart required ***
Last login: Thu Dec 23 02:08:23 2021 from 192.168.64.1
ubuntu@albion:~$
以上で完了です。
まとめ
基本的にはmultipass shell
コマンドを使えば十分ですが、直接SSH接続したい場合は上記手順によってホストマシンからMultipass上の仮想マシンへSSH接続することができます。
関連記事
- 公開日:2022/07/11 更新日:2022/07/11
phpenvを使ってUbuntu20.04にPHPをインストールする手順
phpenvを使ってUbuntu20.04にPHPをインストールする手順をまとめます。
- 公開日:2022/03/04 更新日:2022/03/04
M1 MacでUbuntuの仮想マシンを使うためにMultipassをインストールする
M1、M1 Pro、M1 MaxなどのApple Siliconを搭載しているMacbookProでの開発環境整備のために、仮想環境を構築できるMultipassをインストールしました。その手順をまとめます。
- 公開日:2017/08/27 更新日:2017/08/27
MacでubuntuのインストールUSBを作成する方法と手順
MacでubuntuのインストールUSBを作成する手順をメモします。ここで載せる手順はターミナルでのコマンドによる方法になります。
- 公開日:2014/06/19 更新日:2014/06/19
phpmyadminにアクセスできない場合の対処方法
たまにphpmyadminにアクセスできずに困る場合があり、いつも対処方法を調べている気がするのでメモしておきます。ここではMacのMAMPを使っている場合、ubuntuの場合についてメモします。非常に簡単です。