VirtualBoxのUbuntu 24.04にVSCodeからリモート接続する完全ガイド

前提条件
- Windows 11がホストマシン
- VirtualBox上にUbuntu 24.04がインストール済み
- VSCodeがホストマシンにインストール済み
Ubuntu側の設定
SSHサーバーのインストール
sudo apt install openssh-server
ネットワーク設定
- VirtualBoxマネージャーでUbuntuの電源を切る
- 「設定」→「ネットワーク」→「アダプター2」を選択
- 「ネットワークアダプターを有効化」にチェック
- 「割り当て」を「ホストオンリーアダプター」に設定
IPアドレスの確認
ip addr show
表示された192.168.xxx.xxxのアドレスをメモします。 192.168.56.102
VSCodeの設定
Remote-SSH拡張機能のインストール
- VSCodeを起動
- 左側の拡張機能アイコンをクリック
- 検索欄に「Remote-SSH」と入力
- Microsoft提供の「Remote-SSH」をインストール
SSH接続の設定
- VSCodeの左側で「リモートエクスプローラー」を選択
- 「SSH」の歯車アイコンをクリック
- configファイルを開き、以下の内容を追加:
Host ubuntu24
HostName 192.168.xxx.xxx
User あなたのUbuntuユーザー名
接続手順
- VSCodeの左側のリモートエクスプローラーから設定したホストを選択
- 「新しいウィンドウで接続」をクリック
- プラットフォームの選択で「Linux」を選択
- パスワードを入力して接続
接続が成功すると、VSCode左下に「SSH: ホスト名」が表示され、Ubuntuのファイルシステムにアクセスできるようになります。
GitHubとのSSH接続
VirtualBoxのUbuntuからGitHubのプライベートリポジトリに接続する手順を説明します。
SSH鍵の作成と設定
SSH鍵の生成
cd ~/.ssh
ssh-keygen -t rsa
- 鍵の保存場所を聞かれたら、デフォルトの
id_rsa
でEnter - パスフレーズは必要に応じて設定
GitHubへの公開鍵の登録
- 公開鍵の内容をコピー
cat ~/.ssh/id_rsa.pub
- GitHubでの設定
- GitHubにログイン
- 右上のプロフィール写真をクリック
- 「Settings」を選択
- サイドバーから「SSH and GPG keys」を選択
- 「New SSH key」をクリック
- タイトルを入力(例:Ubuntu VirtualBox)
- コピーした公開鍵を「Key」欄に貼り付け
- 「Add SSH key」をクリック
リポジトリのクローン
gitのインストール
sudo apt install git
リポジトリをクローンする場合は以下のSSH URLを使用:
git clone git@github.com:ユーザー名/リポジトリ名.git
ユーザー名/リポジトリ名
はリポジトリのURLhttps://github.com/username/reponame
のusername/reponame
の部分が該当します。
developブランチをクローンするときは:
git clone -b develop git@github.com:ユーザー名/リポジトリ名.git
これでカレントディレクトリにリポジトリ名のディレクトリが作成され、リポジトリのファイルがクローンされます。
VirtualBoxの有用性
なぜこんな面倒くさいことをするのか?Dockerを使えばいいじゃないか?と言われそうです。それは正しい意見です。ですがDockerには落とし穴がありました。見方を変えて、なぜDockerを使わないのか?私がDockerを使えないわけではありません。Dockerを愛しています。使い倒しています。便利ですもん。ですが、Dockerを使うには重要な前提事項があるのですが。それは「環境変数が使用されていること」です。 DockerはDevOpsのためのツールです。開発環境や本番環境をDockerで構築することができます。ですが、開発環境をDockerで構築するには、環境変数が必要です。ところが、今回のシステムはレガシーシステムで作りが雑です。すべての変数はハードコーディングされています。環境変数は一切使用されていません。そのため、Dockerを使うことができませんでした。Dockerの限界を見たのです。まさにあと一歩で山の頂上にたどり着くというところで、ガラスの天井にぶつかってしまったのです。
レガシーシステムならVirtualBox一択なのです。
愚痴ひとりごと
クロスセルの計算か所を探そうとするが、見つからない。そんなわけがない、クロスセルは実装されている。なぜ”cross-sell”や”crosssell”でコードが検索できないのだ?
え?
“crosscell”?
それじゃ「交差する細胞」だよ…しかも100か所くらいある。
この半年間、このレガシーシステムにどれだけ苦しめられたか。スペルミス、汚いコード、動けばいいという精神性。悪い見本のすべてが凝縮されたと言っても過言ではない、このシステム。もうすぐこの案件が終わると思うと、心底ほっとする。