メニュー

公開日:
6 min read
エンジニアリング

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

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拡張機能のインストール

  1. VSCodeを起動
  2. 左側の拡張機能アイコンをクリック
  3. 検索欄に「Remote-SSH」と入力
  4. Microsoft提供の「Remote-SSH」をインストール

SSH接続の設定

  1. VSCodeの左側で「リモートエクスプローラー」を選択
  2. 「SSH」の歯車アイコンをクリック
  3. configファイルを開き、以下の内容を追加:
   Host ubuntu24
    HostName 192.168.xxx.xxx
    User あなたのUbuntuユーザー名

接続手順

  1. VSCodeの左側のリモートエクスプローラーから設定したホストを選択
  2. 「新しいウィンドウで接続」をクリック
  3. プラットフォームの選択で「Linux」を選択
  4. パスワードを入力して接続

接続が成功すると、VSCode左下に「SSH: ホスト名」が表示され、Ubuntuのファイルシステムにアクセスできるようになります。

GitHubとのSSH接続

VirtualBoxのUbuntuからGitHubのプライベートリポジトリに接続する手順を説明します。

SSH鍵の作成と設定

SSH鍵の生成

   cd ~/.ssh
ssh-keygen -t rsa
  • 鍵の保存場所を聞かれたら、デフォルトのid_rsaでEnter
  • パスフレーズは必要に応じて設定

GitHubへの公開鍵の登録

  1. 公開鍵の内容をコピー
   cat ~/.ssh/id_rsa.pub
  1. 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/reponameusername/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か所くらいある。

この半年間、このレガシーシステムにどれだけ苦しめられたか。スペルミス、汚いコード、動けばいいという精神性。悪い見本のすべてが凝縮されたと言っても過言ではない、このシステム。もうすぐこの案件が終わると思うと、心底ほっとする。