0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VirtualBox VMにssh接続する

Posted at

概要

VirtualBoxのネットワーク設定をNATにしたまま、ホストOSからVirtualBox上のVMにssh接続するポートフォワード設定についてまとめます。

実行環境

  • macOS Big Sur
  • VirtualBox バージョン 6.1.18 r142142 (Qt5.6.3)
  • Debian

VirtualBoxの設定

  1. VirtualBoxマネージャーの画面で対象のVMを選択
  2. 「設定」→「ネットワーク」を開き、割り当てがNATであることを確認 
  3. 「高度」→「ポートフォワーディング」を開き、新規ルールを追加
    • 名前:ssh (なんでもOK)
    • プロトコル:TCP
    • ホストIP:127.0.0.1(ローカルループバックアドレス)
    • ホストポート:3333(任意の数字)
    • ゲストIP:空
    • ゲストポート:22(VMのsshで使用するポート)
  4. VMを再起動

Macのターミナルからssh接続

$ ssh 'ユーザー名'@127.0.0.1 -p 'ホストポート'
で接続できます。

自分の場合は

$ ssh rsudo@127.0.0.1 -p 3333

になります。
上手くいかなかった場合は

  • VMが起動しているか。
  • VMのsshサービスが起動しているか。
  • ポート番号が合っているか

あたりを確認してみて下さい。

以下、ポートフォワード設定について興味ある方はどうぞ。

ポートフォワード設定について

まず、 VirtualBoxのデフォルトのネットワーク設定であるNATについて解説します。

NATモードでは、VMはVirtualBox networking engineというVMとホストOSの間にあるルーターを介してインターネットに接続されています。
CBBFCB55-D2DF-4C52-BA4C-F3892208B306_1_201_a.jpeg

図のようにVMはルーターの背後にあるので、VMのプライベートIPアドレスを指定しても外部のインターネットやホストOSから接続することはできません。(グローバルIPアドレスはホストOSと同じなので、グローバルIPアドレスを指定しても接続できない)

そこで、VirtualBoxの設定でホストOSの特定のポートに届いた通信をゲストの特定ポートに転送することでホストOSからVMへの通信を可能にするのがポートフォワード設定です。
今回だと、ホストにポート3333が届いたらゲストのポート22に転送するという設定をしています。

まとめ

ポートフォワード設定の仕組みがわからず混乱したのでまとめてみました。
VirtualBoxのマニュアルによるとNAT以外でもホスト→VMの通信が可能になる設定があるようです。
訂正等あればコメントお願いします。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?