VirtualBoxのGuest OSにSSHで接続する
M1 Mac mini では Docker イメージが利用できなかったため,Windows 10 で動いている VirtualBox 上の Ubuntu に macOS からポートフォワーディングで操作して利用できる環境を作りたいと思います.
ホストOSからゲストOSへ
VirtualBox 上で動いている Ubuntu 20.04 にホスト OS の Windows 10 から SSH で接続できるように設定します.
全体設定
ツール > プロパティ で "VirtualBox Host-Only Ethernet Adapter" を確認します.
DHCP サーバの有無はどちらでも構わないようです.
環境設定
設定 > ネットワーク でアダプターを追加します.
割り当ては「ホストオンリーアダプター」を選んでください(ホストオンリーアダプターはホスト OS とゲスト OS の間のみの通信).
IPアドレス確認
CUI では以下のコマンドで確認できます.
"VirtualBox Host-Only Ethernet Adapter" を追加すると,enp0s8
が増えます.
terminal
$ ip a
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 xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
valid_lft 79984sec preferred_lft 79984sec
inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
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 xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8
valid_lft 484sec preferred_lft 484sec
inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
valid_lft forever preferred_lft forever
GUI でも確認可能です.
ホスト外部からゲストOSへ
設定 > ネットワーク を開くと,アダプター1はデフォルトで割り当て「NAT」となっています.
NAT でポートフォワーディングするため 高度 を展開し,ポートフォワーディング をクリックして新規ポートフォワーディングルールを追加します.
- 名前:自由
- プロトコル:TCP
- ホスト IP:Windows 10 のローカル IP アドレス
- ホストポート:22
- ゲスト IP:上記で確認した IP アドレス
- ゲストポート:22
ホストのポート番号は好きに設定できます.22 番を使用するとホスト OS への SSH ができないので使用していないポートを使用するとか.
ポートフォワーディングの設定を行うことで,Windows 10 の IP アドレスに SSH 接続すれば VirtualBox 上のゲスト OS に接続できます.