VirtualBox + Ubuntu Server 24.04でSSH開発環境を構築する完全ガイド
2025年現在、開発環境をVirtualBoxで構築する際は、VSCodeのRemote SSH機能を使うのがベストプラクティスとなっています。この記事では、初心者でも確実に環境を構築できるよう、詳細な手順を説明します。


はじめに:なぜSSH接続が必要なのか
VirtualBoxでUbuntu Serverをインストールすると、デフォルトでは黒い画面(コンソール)での操作となります。この環境では以下の問題があります:
- コピー&ペーストができない
- 画面スクロールが不便
- 日本語入力が困難
- ファイル編集が非効率
SSH接続を設定することで、使い慣れたターミナルやVSCodeから快適に操作できるようになります。
必要なソフトウェアとバージョン
- VirtualBox: 7.2.2以降(2025年1月時点の最新版)
- Ubuntu Server: 24.04 LTS(2029年4月までサポート)
- Windows TerminalまたはTera Term(Windows)
- Visual Studio Code + Remote SSH拡張機能(推奨)
ステップ1: Ubuntu Server 24.04のダウンロード
- Ubuntu公式サイトにアクセス
- Ubuntu Server 24.04 LTSをダウンロード(約3GB)
- ダウンロードしたISOファイルの場所を覚えておく
ステップ2: VirtualBoxで仮想マシンを作成
仮想マシンの作成
- VirtualBoxを起動し、「新規」ボタンをクリック
- 以下の設定で仮想マシンを作成:
- 名前: Ubuntu Server 24.04(任意)
- タイプ: Linux
- バージョン: Ubuntu (64-bit)
- メモリサイズ: 2048MB以上(推奨4096MB)
- ハードディスク: 新規作成(VDI形式、動的割り当て、20GB以上)
ISOファイルの設定
- 作成した仮想マシンを選択し、「設定」をクリック
- 「ストレージ」を選択
- 「コントローラー: IDE」の下にある空のディスクアイコンをクリック
- 右側のディスクアイコンから「ディスクファイルを選択」
- ダウンロードしたUbuntu Server 24.04のISOファイルを選択
ステップ3: Ubuntu Serverのインストール
インストール開始
- 仮想マシンを起動
- 言語選択で「English」を選択(日本語はサーバー版では非推奨)
- キーボードレイアウトで「Japanese」を選択
- ネットワーク設定はデフォルトのまま「Done」
- プロキシ設定は空欄のまま「Done」
- ミラーサーバーはデフォルトのまま「Done」
ストレージ設定
- 「Use an entire disk」を選択
- パーティション設定を確認して「Done」
- 「Continue」で確定
アカウント設定(重要)
- 以下の情報を入力:
- Your name: あなたの名前(例:Taro Yamada)
- Your server’s name: サーバー名(例:ubuntu-server)
- Pick a username: ユーザー名(例:taro)※小文字のみ
- Choose a password: パスワード(強固なものを設定)
- Confirm your password: パスワード再入力
SSHサーバーのインストール(重要)
- 「Install OpenSSH server」にチェックを入れる
- 「Done」をクリック
- Featured Server Snapsは何も選択せずに「Done」
インストールが完了したら「Reboot Now」を選択します。
ステップ4: 初回起動とIPアドレスの確認
仮想マシンにログイン
- 再起動後、ユーザー名とパスワードでログイン
- 以下のコマンドでIPアドレスを確認:
ip addr showまたは
hostname -I通常、10.0.2.15のようなIPアドレスが表示されます。これはVirtualBoxのNAT内部ネットワークのアドレスです。
SSHサーバーの状態確認
sudo systemctl status ssh「active (running)」と表示されていることを確認します。もし起動していない場合は:
sudo systemctl start ssh
sudo systemctl enable sshファイアウォールの設定
Ubuntu 24.04ではufwがデフォルトで無効になっていますが、念のため確認:
sudo ufw status「Status: inactive」と表示される場合は問題ありません。もし有効な場合は:
sudo ufw allow ssh
sudo ufw allow 22/tcpステップ5: VirtualBoxでポートフォワーディング設定
この設定が最も重要です。詳しく説明します。
ポートフォワーディングとは
VirtualBoxのNATモードでは、仮想マシンは独自のプライベートネットワーク(10.0.2.0/24)内に存在します。外部(ホストマシン)から直接アクセスできません。ポートフォワーディングを設定することで、ホストマシンの特定ポートへのアクセスを仮想マシンに転送できます。
設定手順
- 仮想マシンをシャットダウン:
sudo shutdown -h now- VirtualBoxマネージャーで仮想マシンを選択し、「設定」をクリック
- 「ネットワーク」→「アダプター1」を選択
- 「高度」をクリックして詳細設定を表示
- 「ポートフォワーディング」ボタンをクリック
- 「+」アイコンをクリックして新規ルールを追加
- 以下の設定を入力:
- 名前: SSH(任意の名前)
- プロトコル: TCP
- ホストIP: 127.0.0.1(または空欄)
- ホストポート: 2222(任意の1024以上の番号)
- ゲストIP: 10.0.2.15(仮想マシンのIP)
- ゲストポート: 22
- 「OK」をクリックして設定を保存
ステップ6: SSHで接続テスト
Windowsの場合
Windows Terminal / PowerShellを使用:
ssh -p 2222 ユーザー名@127.0.0.1例:
ssh -p 2222 taro@127.0.0.1Tera Termを使用:
- Tera Termを起動
- 以下を入力:
- ホスト: 127.0.0.1
- TCPポート: 2222
- 「OK」をクリック
- ユーザー名とパスワードを入力
macOS / Linuxの場合
ssh -p 2222 ユーザー名@127.0.0.1接続時の注意事項
初回接続時に以下のメッセージが表示されます:
The authenticity of host '[127.0.0.1]:2222' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])?「yes」と入力してEnterキーを押します。
ステップ7: VSCodeでRemote SSH接続(推奨)
VSCodeのRemote SSH拡張機能を使うと、まるでローカルで開発しているかのような快適な環境が実現できます。
Remote SSH拡張機能のインストール
- VSCodeを起動
- 左側の拡張機能アイコンをクリック(またはCtrl+Shift+X)
- 「Remote – SSH」を検索
- Microsoftが提供する「Remote – SSH」をインストール
SSH設定ファイルの作成
- VSCodeでコマンドパレットを開く(Ctrl+Shift+P または F1)
- 「Remote-SSH: Open SSH Configuration File」を選択
~/.ssh/configを選択(Windowsの場合:C:\Users\ユーザー名\.ssh\config)- 以下の設定を追加:
Host ubuntu-server
HostName 127.0.0.1
Port 2222
User ユーザー名例:
Host ubuntu-server
HostName 127.0.0.1
Port 2222
User taro- ファイルを保存
VSCodeから接続
- コマンドパレットを開く(Ctrl+Shift+P)
- 「Remote-SSH: Connect to Host」を選択
- 「ubuntu-server」を選択
- 新しいウィンドウが開き、パスワードを入力
- 接続成功すると、左下に「SSH: ubuntu-server」と表示される
VSCodeで開発環境を整える
接続後、以下の作業が可能になります:
- ファイルの編集(構文ハイライト付き)
- ターミナルの統合利用
- Git操作
- 拡張機能のリモートインストール
- デバッグ実行
ステップ8: SSH鍵認証の設定(セキュリティ強化)
パスワード認証よりも安全なSSH鍵認証を設定します。
Windows(PowerShell)での鍵生成
ssh-keygen -t ed25519 -C "your-email@example.com"公開鍵を仮想マシンにコピー
方法1:手動コピー
- 公開鍵の内容を表示:
cat ~/.ssh/id_ed25519.pub- SSH接続して、仮想マシンで以下を実行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公開鍵の内容をここに貼り付け" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys方法2:ssh-copy-idを使用(WSL経由)
ssh-copy-id -p 2222 ユーザー名@127.0.0.1VSCodeの設定を更新
~/.ssh/configに以下を追加:
Host ubuntu-server
HostName 127.0.0.1
Port 2222
User ユーザー名
IdentityFile ~/.ssh/id_ed25519ステップ9: ヘッドレスモードでの起動(便利な使い方)
GUIウィンドウを表示せずにバックグラウンドで仮想マシンを起動できます。
コマンドラインから起動
VBoxManage startvm "Ubuntu Server 24.04" --type headless停止
VBoxManage controlvm "Ubuntu Server 24.04" poweroffまたは、SSH接続して:
sudo shutdown -h nowトラブルシューティング
問題1:SSH接続できない
原因と解決策:
- SSHサーバーが起動していない
sudo systemctl start ssh
sudo systemctl enable ssh- ポートフォワーディング設定が間違っている
- ゲストIPが正しいか確認(通常は10.0.2.15)
- ホストポートが使用されていないか確認
- Windows Defenderファイアウォール
- VirtualBoxの通信を許可する
問題2:VSCodeで接続エラー
解決策:
- known_hostsファイルをクリア:
Remove-Item ~/.ssh/known_hosts- SSH設定ファイルの構文を確認
問題3:仮想マシンが遅い
解決策:
- メモリを増やす(4GB以上推奨)
- CPUコア数を増やす(設定→システム→プロセッサー)
- 仮想化支援機能を有効化(BIOS設定でVT-x/AMD-V)
ネットワーク構成の選択肢
NAT + ポートフォワーディング(本記事の方法)
メリット:
- 設定が簡単
- セキュリティが高い
- ホストマシンからのみアクセス可能
デメリット:
- LAN内の他のPCからアクセスできない
ブリッジアダプター
メリット:
- LAN内のどこからでもアクセス可能
- 実マシンと同じように扱える
デメリット:
- ルーターが必要
- IPアドレスを別途消費
ホストオンリーアダプター + NAT(2つのアダプター)
メリット:
- インターネット接続とホスト接続を両立
- より柔軟な設定が可能
デメリット:
- 設定がやや複雑
まとめ
VirtualBox + Ubuntu Server 24.04 + VSCode Remote SSHの組み合わせは、2025年現在最も効率的な開発環境の一つです。この記事の手順に従えば、初心者でも確実に環境を構築できます。
特にVSCodeのRemote SSH機能は革新的で、仮想マシン内での開発をローカル開発と同じ感覚で行えます。これにより、Windows、macOS、Linuxそれぞれの環境で、統一された開発体験を実現できます。
クラウド環境(AWS、Azure、GCP)でも同様のSSH接続が基本となるため、この環境構築の経験は将来的にも役立ちます。
以下の記事は2021年に掲載しましたが、進化の過程の研究のため残してあります。
VirtualBoxを使用してubuntu minimalをインストールしましたが、デスクトップ画面ではなく真っ黒なコンソール画面で操作が困難なので、Tera Termを使用してこの仮想マシンに接続することにしました。クラウドではこの環境が圧倒的多数なので、皆さんも学習のために環境を構築してみてはいかがでしょうか。
それでは進めていきましょう。SSH接続をしたいので、それ相当のソフトがインストールされているか確認します。
sudo systemctl status sshd導入されていないのでインストールします。
sudo apt install sshファイアーウォールでポート開放状態がどうなっているかの確認もします。
inactiveと表示されたので、インストール済みではあるが起動はしていないので接続を拒否されることはないことがわかりました。
sudo ufw status次はVirtualBox自体に設定をするのでOSをシャットダウンします。シャットダウン前に、この仮想マシンのIPアドレスをメモしておきます。
VirtualBoxで設定をクリックします。ネットワークを選択し、アダプタータブにある「高度」をクリックして詳細を表示します。

ここにあるポートフォワーディングを利用します。ポートフォワーディングを設定されたポートは、対応付けられた別のアドレスポートの窓口として機能し、外部との間で送受信されるパケットはすべて自動的に転送されるので、仮想マシンにSSH接続が可能となります。
ルールを新規で作成します。名前は任意で決め、ホストIPに操作しているPCのIPアドレスを入力します。IPアドレスはコマンドプロンプトで次のコマンドを入力して調べます。
ipconfigホストポートは5050としました。ゲストIPには仮想マシンのIPアドレスを入力し、ゲストポートは22を入力します。

これで操作しているPCと、VirtualBoxの仮想マシンのIPアドレスが送受信可能となりました。
仮想マシンを起動します。この時、Windows Defenderによる警告が表示されたら、アクセスを許可します。

本当に送受信が可能になったのかをコマンドプロンプトで確認します。
telnet 192.168.26.105 5050OpenSSHの表示がされ接続が確認できました。

Tera Termを開き、ホストとTCPポートを次のように記入します。
ホスト:user@192.168.26.105
TCPポート:5050

OKボタンを押すと認証画面が表示されるので、仮想マシンのubuntuのユーザー名とパスワードを入力してログインします。

せっかくなので認証鍵による接続もしてみます。
仮想マシンにあとから必要になるディレクトリを作成しておきます。
ホームに.sshというディレクトリを作成し、適切なアクセス権を付与します。
mkdir .ssh
ディレクトリのパーミッションを700変更(オーナーのみ読み込み、書き込み、実行が可能)
chmod 700 .ssh今度は、Tera Termの設定タブにある「SSH鍵作成」をクリックします。「生成」を押して公開鍵と秘密鍵を保存します。

公開鍵の拡張子は.pubで、これを仮想マシンに転送します。
転送するにもTera Termの機能で可能です。ファイルタブにあるSSH SCPがそれにあたります。
上段にある「From」の部分に先ほど生成した拡張子が.pubの公開鍵を読み込んできます。
「To」の部分は空白にしました。空白の時は、ファイルは今いるディレクトリに転送されます。

.pubファイルを先ほど作成した.sshディレクトリに、違うファイル名でコピーします。作成したファイルにも適切な権限を設定します。
公開鍵を.sshディレクトリのauthorized_keysというファイル名でコピーする。
cat id_rsa.pub >> .ssh/authorized_keys
ファイルauthorized_keysのパーミッションを600変更(オーナーのみ読み込み、書き込み可能)
chmod 600 .ssh/authorized_keys
転送した公開鍵は不要になったので削除する。
rm id_rsa.pubTera Termで接続の際、今度は鍵を使用する接続をします。秘密鍵を選択して接続します。




コメント