VirtualBox上にCentOSの仮想環境を作った後、毎回VirtualBoxのコンソール画面を開いて黒い画面をポチポチ操作していませんか?
-
コピペがしづらい
-
画面のサイズ調整が面倒
-
いつものSSHクライアント(VS Codeやターミナルなど)を使いたい!
今回は、そんなストレスを瞬時に解決する「ポートフォワーディング」を使ったSSH接続設定を解説します。
複雑なネットワーク構築は不要で、VirtualBoxの設定を数箇所いじるだけで完了します!
🛠️ SSH接続を可能にする3ステップ設定
今回は、ホストPC(あなたが実際に使っているPC)から、VirtualBox内のCentOSにSSHで繋ぐための最短ルートをご紹介します。
ステップ 1:VirtualBox側で「ポートフォワーディング」を設定する
VirtualBoxの「NAT」という標準のネットワークモードを維持したまま、特定のポート(通り道)だけを繋ぐ設定をします。これにより、セキュリティを保ったまま安全に接続できます。
ステップ 2:CentOS側でSSHサービスが動いているか確認する
基本的にはCentOSインストール時にデフォルトでSSH(sshd)が有効になっていますが、念のため起動しているかコマンドで確認します。
CentOSのターミナルで以下を実行してください。
# SSHサービスのステータス確認
systemctl status sshd
💡 もし動いていなかったら(Active: inactive など)
以下のコマンドで起動&自動起動設定をしておきます。
Bashsystemctl start sshd systemctl enable sshd
ステップ 3:ホストPCからSSH接続してみる
設定はこれですべて完了です!
ホストPC(WindowsのコマンドプロンプトやMacのターミナル、またはお好みのSSHクライアント)を開き、以下の宛先に対して接続テストを行います。
💻 コマンドで接続する場合の例:
ssh [CentOSのユーザー名]@127.0.0.1 -p 2222
🛠️ 各種SSHクライアント(設定ソフト)で入力する項目:
-
ホスト名(IPアドレス):
127.0.0.1(またはlocalhost) -
ポート番号:
2222(※通常の22ではなく、ステップ1で設定したホストポートを指定します) -
ユーザー名 / パスワード: CentOSに作成してあるユーザーアカウント情報
初回接続時に「Are you sure you want to continue connecting…」と確認が出たら yes と入力し、パスワードを入力して無事にCentOSのログインプロンプトが表示されれば大成功です!
📝 まとめ
「VirtualBoxのCentOSにSSHする」と聞くと、ホストオンリーアダプターを追加してIPアドレスを固定して……という面倒なネットワーク設定を想像しがちですが、「NAT + ポートフォワーディング」なら、既存の環境を一切汚さずに秒速で接続環境が作れます。
一度SSH経由の接続に慣れてしまうと、画面間のファイルのコピペやコマンドの流し込みが驚くほどスムーズになり、Linuxの学習や開発作業が何倍も快適になりますよ。ぜひ試してみてください!
【参考】もうひとつの選択肢:ホストオンリーアダプター方式でSSH接続する
ポートフォワーディング方式に加え、開発環境でよく使われるのがこの「ホストオンリーアダプター」を組み合わせる方法です。
この方式の最大のメリットは、「ゲストOS(CentOS)に専用のIPアドレスが割り当てられること」です。本番環境のサーバーを操作する感覚に最も近く、Webサーバー(Apache/Nginx)やデータベース(MySQL)を立ち上げた際にも、ブラウザやツールから直接アクセスしやすくなります。
🛠️ ホストオンリーアダプター設定の3ステップ
この設定は、「VirtualBoxの設定」➔「CentOSのネットワーク設定(IP固定)」の順に進めます。
ステップ 1:仮想マシンの設定にアダプターを追加する
ホストPCと仮想マシン(CentOS)の間だけで通信できる「専用の専用線」を追加します。
💡 なぜアダプターを2つ使うの?
アダプター1(NAT):CentOSがインターネットからアプデなどをダウンロードするため。
アダプター2(ホストオンリー):あなたのパソコン(ホスト)とCentOSが1対1で通信(SSHなど)するため。
この「2本挿し」にすることで、**「ネットも繋がるし、手元のPCからも直接SSHできる」**という最強の環境が出来上がります。
ステップ 2:CentOS側で追加したカードを有効にする(IP設定)
CentOSを起動し、追加した2つ目のネットワークカードにIPアドレスを設定します。
(※ここではCentOS 7以降の一般的なコマンド/設定ファイルをベースに解説します)
# ネットワークインターフェース(カード)の一覧を確認
ip a
実行すると、enp0s3(NAT用)のほかに、新しく追加された enp0s8 などのカード名(IPアドレスがまだ割り当てられていないもの)が見つかります。
この新しいカード(例:enp0s8)を有効化し、接続できるようにします。設定ファイルを直接書き換えるのが一番確実です。
# 設定ファイルの編集(カード名が enp0s8 の場合)
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
中身を以下のように書き換えるか、新規作成します(IPアドレスはVirtualBoxの設定値に合わせます。通常は 192.168.56.xxx です)。
TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s8
DEVICE=enp0s8
ONBOOT=yes
IPADDR=192.168.56.101
NETMASK=255.255.255.0
保存して閉じたら、ネットワーク設定を反映(再起動)させます。
# ネットワークサービスの再起動
sudo systemctl restart network
# ※CentOS 8以降やAlmaLinuxなどの場合は以下
# sudo nmcli connection reload
# sudo nmcli connection up enp0s8
これで ip a を叩き、enp0s8 に 192.168.56.101 が割り当てられていればCentOS側の準備は完了です!
ステップ 3:ホストPCから設定したIPに直接SSHしてみる
あとはホストPC(WindowsやMac)のターミナルやクライアントソフトを開き、設定した固定IPアドレスへ直接アクセスするだけです。
💻 コマンドで接続する場合:
ssh [CentOSのユーザー名]@192.168.56.101
ポートフォワーディングの時のように -p 2222 のようなポート番号の指定は不要になり、標準の 22 ポート(指定なし)でスマートにログインできるはずです!
⚖️ 「ポートフォワーディング」と「ホストオンリー」どっちがいい?
最後に、どちらを使うべきか迷ったときの比較です。
| 特徴 | ポートフォワーディング方式 | ホストオンリーアダプター方式 |
| 手軽さ | 🌟 抜群に簡単(VirtualBoxの設定のみ) | CentOS側の設定ファイルを触る必要がある |
| 接続ポート | 2222 などのカスタムポートになる |
22 ポートで直接繋がる |
| IPアドレス | 127.0.0.1(すべてlocalhost共有) |
仮想マシンごとに固有のIPを持てる |
| こんな人向け | とりあえず手軽にSSHできれば満足な方 | 複数台の仮想マシンを連携させたり、Webサーバー等の構築も行う本格派 |
まずは手軽なポートフォワーディングで試し、開発環境が本格化してきたらホストオンリー方式でIPアドレスをしっかり切り分ける、というステップを踏むのがおすすめです!

