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" を確認します.

virtualbox-1.png

DHCP サーバの有無はどちらでも構わないようです.

virtualbox-2.png

環境設定

設定 > ネットワーク でアダプターを追加します.

割り当ては「ホストオンリーアダプター」を選んでください(ホストオンリーアダプターはホスト OS とゲスト OS の間のみの通信).

virtualbox-3.png

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 でも確認可能です.

virtualbox-4.png

ホスト外部からゲストOSへ

設定 > ネットワーク を開くと,アダプター1はデフォルトで割り当て「NAT」となっています.

NAT でポートフォワーディングするため 高度 を展開し,ポートフォワーディング をクリックして新規ポートフォワーディングルールを追加します.

  • 名前:自由
  • プロトコル:TCP
  • ホスト IP:Windows 10 のローカル IP アドレス
  • ホストポート:22
  • ゲスト IP:上記で確認した IP アドレス
  • ゲストポート:22

ホストのポート番号は好きに設定できます.22 番を使用するとホスト OS への SSH ができないので使用していないポートを使用するとか.

ポートフォワーディングの設定を行うことで,Windows 10 の IP アドレスに SSH 接続すれば VirtualBox 上のゲスト OS に接続できます.