ParallelsのUbuntu Linuxにssh接続する
動作環境
デバイス
iMac (Retina 5K, 27-inch, 2020)
OS
macOS Big Sur v11.2.3
仮想環境
Parallels Desktop Pro Edition バージョン 16.1.3 (49160)
仮想環境のセットアップ
linuxが入っている程で進めます。
まずUbuntuマシンのIPアドレスを調べるためにnet-toolsをインストールします。また、ssh通信をするためにopenssh-serverも一緒にインストールしておきます。
sudo apt install openssh-server
インストールが完了したらIPアドレスの確認をします。
ip a
net-toolsに含まれるifconfigでIPアドレスを調べます。
enp0s5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.211.55.3 netmask 255.255.255.0 broadcast 10.211.55.255
...
今回使用するのは二行目のinetの後に続くアドレスです。
macOSのセットアップ
ただlinuxとssh通信をするだけなのは勿体無いので、VSCodeのRemote-sshを使ってVSCodeでlinuxのコードを触ることが出来る様にします。
VSCodeのダウンロード
Remote-sshを利用するための拡張機能がいくつかありますが、今回はRemote - SSH: Editing Configuration Filesを利用します。
アプリケーション、拡張のインストールとは別にssh接続の準備をします。
ssh keyは使い回してもいいですし、新たに作って頂いてもいいと思います。
ssh接続する
ssh接続するためには
ssh user-name@ip-address
と書きますが、ip-addressは先ほど確認したものでuser-nameはparallelsにログインするためのユーザー名になります。デフォルトであればparallelsだと思います。
ssh parallels@10.211.55.3
でssh接続することが出来ます。初めて接続する時はfinger printの確認がありますが進めて問題ありません。途中パスワードの入力を求めてきますがこちらはiMacのパスワードではなく、仮想環境のユーザーログイン用パスワードになります。
余談になりますが、ここでのfinger printは~/.ssh/known_hostsを見ると
ホスト 鍵の種類 鍵
の形で保存されている事がわかります。
10.211.55.3 ecdsa-sha2-nistp256 ~~~
上手くログインできるとWelcome to Ubuntu ...
のログがでてターミナル上でssh接続ができました。試しにpwd
やls
でディレクトリを確認してみると仮想マシンにいる事がわかります。
参考: ssh
参考: ssh-server-finger-print
パスワードなしでssh接続する
ssh接続できる様になりましたが、今の状態だとssh接続するたびにログインパスワードを求められるので公開鍵を渡してパスワード入力を省略します。
最初の方にあらかじめ作成したssh keyの公開鍵を渡します。ドラッグ&ドロップでもいいですが、scpコマンドを使用して公開鍵を渡します。
scp ~/.ssh/~~.pub parallels@10.211.55.3:~/.ssh/authorized_keys
公開鍵を渡したら、次はssh接続時に使用する秘密鍵を指定する必要があるのでconfigを追加します。
Host parallels
User parallels
HostName 10.211.55.3
Identityfile ~/.ssh/~~
IdentitiesOnly yes
ホスト名は好きな名前でsshコマンドに渡す名前になります。上記の場合だとssh parallels
になります。UserはUbuntuのユーザー名を指定し、HostNameは先ほどのIP Addressを。Identityfileは先ほど私た公開鍵とセットになっている秘密鍵のパスを指定します。Identityfileを渡す必要があるのでIdentitiesOnlyはyesに設定します。
以上の設定が完了すると
ssh parallels
でssh接続できる様になりました。
VSCode Remote-SSHで接続する
VSCodeを開いた後、cmd + shift + pでもいいですし、左下の緑色のアイコンをクリックし、
Remote-SSH:Connect to Host...
を選択し、先ほど登録したhostを選ぶことでVSCodeでssh接続する事ができました。
ターミナルからssh接続したVSCodeを開きたい場合などはこちらなどを利用させていただくのがいいと思います。
Discussion