このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:VirtualBoxとssh接続

VirtualBoxとssh接続
ここでは、VirtualBox上で稼働する仮想マシンに対して、ホストOS側からsshでログインするためのポートフォワーディング設定と実践例を紹介します。

なぜVirtualBox上の仮想マシンへssh接続するのか
Linuxの検証環境や学習用環境を構築する際、VirtualBoxなどの仮想化ソフトウェアを用いてLinux仮想マシンを手軽に用意するケースが増えています。通常、仮想マシンへはVirtualBoxのコンソール(GUIウィンドウ)から直接ログインできますが、実務環境を想定したり、より自然なサーバ管理操作を行うために、ローカルマシンのターミナルやSSHクライアントからリモートログインしたい場合があります。
ところが、VirtualBoxのデフォルト設定ではゲストOS(仮想マシン)のネットワークがNATモードとなっており、ホストOSから直接ゲストOSの22/tcp(SSHポート)へアクセスできません。この問題を解決するのが「ポートフォワーディング」という機能です。ポートフォワーディングを設定することで、ホストOS側の特定ポートをゲストOSのSSHポートへ振り向け、ローカルマシンから仮想マシンへSSH接続を可能にします。
ポートフォワーディングとNATモード
VirtualBoxで作成された仮想マシンはデフォルトでNATモードのネットワークアダプタを使います。NATモードでは、ゲストOSは外部ネットワークにアクセス可能ですが、ホストOS側からはゲストOS内部へ直接アクセスできません。
このような制限を回避するための仕組みがポートフォワーディングです。ポートフォワーディングとは、ホストOSの特定ポートへの接続要求をゲストOS側に転送する機能を指します。
ポートフォワーディングの仕組み
ホストOS側ポート | 振り向け先 |
---|---|
2222/tcp (例) | ゲストOSの22/tcp (SSHポート) |
こうすることで、ホストOSのlocalhost:2222
へアクセスすると、自動的にゲストOS上の22/tcp
へ通信が転送され、sshによる接続が可能となります。

VirtualBoxでのポートフォワーディング設定手順
1.仮想マシンを停止
設定を行うには、対象の仮想マシンを一旦停止します。
2.ネットワーク設定画面を開く
VirtualBoxマネージャで該当仮想マシンを選択し、「設定」メニューから「ネットワーク」を開きます。

3.NATネットワークのポートフォワーディング設定
NATモードが選択されているアダプタを確認し、「ポートフォワーディング(P)」ボタンをクリックします。

4.ポートフォワードのルール追加
「+」ボタンで新規ルールを追加します。
- ホストポート:2222
- ゲストポート:22

この設定により、ホストOSでlocalhost:2222
へ接続要求を行うと、ゲストOSの22/tcp(SSHサービス)へ転送されます。
SSHクライアントによる接続
ホストOS側からSSHクライアント(WindowsならPuTTYやTera Term、Linux/macOSならssh
コマンド)を用いて、以下のようにアクセスします。
書式(Linux/macOSの例)
ssh <ログインユーザ名>@localhost -p 2222
コマンド例
ssh user01@localhost -p 2222
解説
-p
オプションで接続先ポート(ここでは2222)を指定します。初回接続時にはホスト鍵の確認やパスワード入力が必要です。パスワード認証や公開鍵認証など、平時のSSH接続と同様の手順でログインできます。
Windowsでの接続例(Tera Term)
Tera Termを起動し、Hostname欄にlocalhost
、Port欄に2222
を入力します。

「OK」ボタンを押すとSSH接続が始まり、初回接続時にセキュリティ警告が表示されます。「続行」ボタンを押せば、パスワード入力画面へ移行します。

ユーザ名・パスワードを入力して「OK」ボタンをクリックします。

ゲストOSへログインできます。

まとめ
- VirtualBoxのNATモードではデフォルトでゲストOSへ直接アクセス不可
- ポートフォワーディング機能を用いて、ホストOSの特定ポート→ゲストOSのSSHポート(22/tcp)へ転送を設定
- ホストOS上では
ssh user01@localhost -p 2222
のように-p
オプションで転送先ポートを指定して接続 - WindowsならTera termやPuTTY、Linux/macOSなら
ssh
コマンドで簡単にリモートログイン可能
このように、VirtualBox環境でも簡単な設定でリモートログインが可能となり、仮想マシンの検証環境をより実際的なサーバ運用に近い形で扱うことができます。