Virtual Box 上のUbuntu へ、Mac のターミナルからSSH アクセス & X転送を行えるようにします。
ホストオンリーアダプタの作成
Virtual Box のファイル -> ホストネットワークマネージャをクリックすると、以下のような画面が現れる

作成をクリックし、ホストオンリーアダプタを作成する

プロパティをクリックすると、IPアドレスの情報が確認可能
IPv4 アドレスを抑えておく: 今回は192.168.56.1

ネットワークアダプタの有効化
Virtual Box の設定をクリックし、ネットワーク -> アダプター2 を選択
ネットワークアダプタを有効化し、割当をホストオンリーアダプタに設定
名前は先程作成したホストオンリーアダプタを選択する

Ubuntu のIPアドレスを固定
Virtual Box の起動ボタンをクリックし、Ubuntu を起動する
起動後、ログイン

以下のコマンドで、Ubuntu から見えるネットワークアダプタを確認
先程アダプター2にホストオンリーアダプタを設定したので、3: eth0s8 が存在することを確認
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:13:86:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.13/24 brd 192.168.11.255 scope global dynamic enp0s3
valid_lft 172776sec preferred_lft 172776sec
inet6 fe80::a00:27ff:fe13:8665/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:80:bd:73 brd ff:ff:ff:ff:ff:ff
Ubuntu 18.04 の場合は、yaml ファイルを編集する必要がある
下記コマンドで編集を行う
$ sudo vim /etc/netplan/50-cloud-init.yaml
vim コマンドの使用方法については下記を参照
以下のように設定する
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
addresses: [192.168.56.2/24]
nameservers:
addresses: [192.168.56.1]
version: 2
nameservers のaddresses にはホストオンリーアダプタ設定時に抑えたIPv4 アドレスを設定: 今回は192.168.56.1
その上のaddresses にはその値よりも一つ大きい値を設定: 今回は192.168.56.2/24
編集完了後、下記コマンドにて設定の適用を実施
$ sudo netplan apply
最後に下記のコマンドで3: enp0s8 にinet が割り振られていることを確認できればOK
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:13:86:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.13/24 brd 192.168.11.255 scope global dynamic enp0s3
valid_lft 172776sec preferred_lft 172776sec
inet6 fe80::a00:27ff:fe13:8665/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:80:bd:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.2/24 brd 192.168.56.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe80:bd73/64 scope link
valid_lft forever preferred_lft forever
SSH 接続をテスト
Mac のターミナルからUbuntu へのSSH 接続を試みる
下記コマンドにて接続する
- <user> にはUbuntu で作成したユーザー名
- <ip> には先程設定した固定IP アドレス: 今回は192.168.56.2
$ ssh <user>@<ip>
接続に成功するとアカウントのパスワード入力を求められる
適切なパスワードを入力しログインが成功すればOK
SSH を公開鍵認証に変更
パスワードによるログインから公開鍵認証に切り替える
SSH でログインしたUbuntu 上で公開鍵と秘密鍵を生成する
- 公開鍵: Virtual Box のUbuntu に登録する鍵
- 秘密鍵: Mac に登録する鍵
公開鍵と秘密鍵の生成のため、Ubuntu 上で下記コマンドを実行
$ ssh-keygen
デフォルトでは以下のディレクトリに作成される
id_rsa
: 秘密鍵id_rsa.pub
: 公開鍵
$ ls -l ~/.ssh/
total 8
-rw------- 1 ask ask 1675 Jun 30 05:21 id_rsa
-rw-r--r-- 1 ask ask 399 Jun 30 05:21 id_rsa.pub
公開鍵をUbuntu で使用するため、下記コマンドを実行
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Ubuntu 上での最後の作業として、パーミッションの設定を行う
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/
SSH接続を終了し、Mac のターミナルに戻る
下記コマンドを実行し、秘密鍵をUbuntu からMac へコピー
- <user> にはUbuntu で作成したユーザー名
- <ip> にはUbunt に設定した固定IP アドレス: 今回は192.168.56.2
$ scp <user>@<ip>:~/.ssh/id_rsa ~/.ssh/
Ubuntu と同様にパーミッションの設定を行う
$ chmod 600 ~/.ssh/id_rsa
$ chmod 700 ~/.ssh/
以上で公開鍵認証の準備が完了
確認のため下記コマンドを実行し、パスワードの入力なしでアクセスできればOK
$ ssh <user>@<ip>
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-54-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Jun 30 05:42:56 UTC 2019
System load: 0.0 Processes: 101
Usage of /: 9.2% of 62.74GB Users logged in: 1
Memory usage: 4% IP address for enp0s3: 10.0.2.15
Swap usage: 0% IP address for enp0s8: 192.168.56.2
138 packages can be updated.
64 updates are security updates.
Last login: Sun Jun 30 05:13:44 2019 from 192.168.56.1
SSH でX転送ができることを確認
Mac にX転送用のアプリケーションをインストールする
Mac のターミナルで下記コマンドを実行
$ brew update
$ brew cask install xquartz
インストール完了後、Mac を再起動
再起動後、SSH にてアクセス
-X
オプションを付与した下記コマンドにてアクセス
$ ssh -X <user>@<ip>
2020/08/14 追記
自分の環境では、-X
オプションが正常に動作しなくなった
そのため、以下のように-Y
オプションを付与して対応している
$ ssh -Y <user>@<ip>
この時点でX転送の準備は完了しているはず
Ubuntu 上で下記コマンドにてxeys をインストール, 実行し、確認する
$ sudo apt update
$ sudo apt install x11-apps
$ xeyes
以下のようなウインドウが表示されればOK
