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が作成されます。
生成されたものを確認すると、以下のようにubuntuvmというファイル名の秘密鍵とubuntuvm.pubというファイル名の公開鍵の2つが生成されます。
続いて以下を実行して作成した公開鍵の中身をターミナルに表示します。
上記のようにssh-rsa..から始まる文字列が表示されるので、これを全てそのままコピーしておきます。
Multipassの仮想マシンのauthorized-kyesに追記する
ここからは仮想マシン側での作業になります。
前節までにコピーしたsshの公開鍵の値を以下のように~/.ssh/authorized_kyesにペーストします。
configに設定する
macOS側の作業になりますが、以下のようにmacの~/.ssh/configに仮想マシンへのSSH接続用の設定を追加しておくと楽になります。以下の中の192.168.64.2はMultipass上で動作するUbuntuのIPアドレスになります。MultipassではデフォルトのUser名がubuntuであるため、以下でもユーザ名としてUser ubuntuとしています。
接続する
あとは~/.ssh/configに設定した内容を使って、以下のようにsshコマンドを実行すればMultipass上のUbuntuにSSH接続できます。以下のsshに続くubuntuvmは、前節で~/.ssh/configに指定したホスト名Host ubuntuvmが該当します。
接続してみると以下のようになります。
以上で完了です。
まとめ
基本的にはmultipass shellコマンドを使えば十分ですが、直接SSH接続したい場合は上記手順によってホストマシンからMultipass上の仮想マシンへSSH接続することができます。
関連記事
公開日:2022/07/11 更新日:2022/07/11phpenvを使ってUbuntu20.04にPHPをインストールする手順
phpenvを使ってUbuntu20.04にPHPをインストールする手順をまとめます。
公開日:2022/03/04 更新日:2022/03/04M1 MacでUbuntuの仮想マシンを使うためにMultipassをインストールする
M1、M1 Pro、M1 MaxなどのApple Siliconを搭載しているMacbookProでの開発環境整備のために、仮想環境を構築できるMultipassをインストールしました。その手順をまとめます。
公開日:2017/08/27 更新日:2017/08/27MacでubuntuのインストールUSBを作成する方法と手順
MacでubuntuのインストールUSBを作成する手順をメモします。ここで載せる手順はターミナルでのコマンドによる方法になります。
公開日:2014/06/19 更新日:2014/06/19phpmyadminにアクセスできない場合の対処方法
たまにphpmyadminにアクセスできずに困る場合があり、いつも対処方法を調べている気がするのでメモしておきます。ここではMacのMAMPを使っている場合、ubuntuの場合についてメモします。非常に簡単です。