クラウドmacOSでVS Code リモート開発(SSH)設定

クラウドmacOSでVS Code リモート開発(SSH)設定のベストプラクティス

読了まで約8分
VS Code リモート開発 SSH

クラウド上のmacOSに、ローカルのVS CodeからSSHで接続して開発する「Remote - SSH」は、物理Macを手元に置かずにXcodeやiOSビルドを扱う際に非常に便利です。本記事では、クラウドmacOS環境でVS Codeのリモート開発(SSH)を設定する手順と、セキュリティを考慮したベストプラクティス、そしてVNCMacの物理Macで実際に使う際のポイントをご説明します。

クラウドmacOS + VS Code Remote-SSH のメリット

クラウド上のmacOS(VNCMacのような物理Macレンタルを含む)にSSHで接続し、VS Codeの「Remote - SSH」拡張で開発する構成には、次のようなメリットがあります。

  • ローカルにソースを置かずに開発できる:リモート側でコードを編集・実行・デバッグできるため、自宅のPCの容量やスペックに依存しません。
  • IntelliSenseや拡張機能がリモートで動作する:VS Code ServerがリモートMac上で動くため、その環境に合わせた補完やビルドが可能です。
  • 複数メンバーで同じクラウドMacを共有しやすい:SSH鍵を分け合えば、同じマシンに各自のVS Codeから接続して作業できます。

事前に必要な環境

ローカル側には、VS Code本体と「Remote - SSH」拡張が必要です。macOS / Windows / Linuxのいずれでも利用できます。クラウド側のMacには、リモートログイン(SSH)が有効である必要があります。VNCMacのMacインスタンスでは、初期状態でSSHが利用可能になるよう案内がありますので、その手順に従ってください。

【操作方法】VS CodeでクラウドmacOSにSSH接続する手順

以下、初めてRemote-SSHを使う方向けに、接続までの流れをステップで説明します。

1 Remote-SSH拡張をインストールする

VS Codeの「拡張機能」パネル(Ctrl+Shift+X / Cmd+Shift+X)を開き、「Remote - SSH」で検索して、Microsoft公式の拡張機能をインストールします。「Remote Development」パックをまとめて入れると、コンテナやWSLとの連携も後から使えます。

2 SSH鍵を用意し、クラウドMacに公開鍵を登録する

まだSSH鍵をお持ちでない場合は、ローカルで次のコマンドを実行して鍵を生成します(Ed25519推奨)。

ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_vncmac

生成された~/.ssh/id_ed25519_vncmac.pubの内容を、クラウドMacの~/.ssh/authorized_keysに1行として追加します。VNCMacの場合は、VNCで一度ログインしたうえで、ターミナルからmkdir -p ~/.sshecho "公開鍵の内容" >> ~/.ssh/authorized_keysで登録できます。

3 SSHの設定ファイル(config)を編集する

VS Codeのコマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)で「Remote-SSH: Open SSH Configuration File」を選び、~/.ssh/config(またはユーザー指定のファイル)を開きます。次のようにホストを追加します。

Host vncmac-dev
    HostName あなたのクラウドMacのIPまたはホスト名
    User ユーザー名
    Port 22
    IdentityFile ~/.ssh/id_ed25519_vncmac

HostNameUserは、VNCMacの案内に記載された接続先とユーザー名に置き換えてください。

4 VS Codeから接続する

左下の「リモート接続」アイコンをクリックするか、コマンドパレットで「Remote-SSH: Connect to Host」を選び、上で設定したvncmac-devを選択します。初回はリモートにVS Code Serverがインストールされ、少し待つと接続が完了します。接続後は「ファイル」→「フォルダーを開く」でリモートMac上の任意のディレクトリを開いて開発できます。

セキュリティのベストプラクティス

クラウドMacをSSHで公開する場合は、次の点を守ることをおすすめします。

  • パスワード認証は無効化するsudo/etc/ssh/sshd_configを編集し、PasswordAuthentication noPermitRootLogin no(rootログインしない場合)に設定し、sshdを再起動します。
  • 秘密鍵はローカルのみに置くIdentityFileで指定した鍵は、手元のPCだけに保存し、クラウド側や第三者に送らないでください。
  • 必要ならファイアウォールでポート制限する:VNCMacのネットワーク設定に従い、信頼できるIPからのみ22番ポートにアクセスできるようにする運用も有効です。
「クラウドmacOSで開発するときは、SSHでコードを編集し、重いビルドやシミュレータはすべてリモートで実行する。手元のマシンはVS Codeを動かすだけなので、古いPCでも快適に使える。」 — リモート開発の実践者

使用シーン:VNCMacの物理Macでリモート開発する利点

VNCMacは仮想化ではない物理Macを提供しているため、Remote-SSHで接続した先は本物のmacOSです。XcodeやiOS Simulator、Homebrewで入れたツールも、実機に近い挙動で動きます。次のような方に特におすすめです。

  • WindowsやLinuxを主に使っているが、iOSアプリのビルドだけクラウドMacで行いたい方
  • 自宅のMacのスペック不足や電気代を抑えたいが、VS Codeの操作性はそのまま維持したい方
  • チームで1台のクラウドMacを共有し、各自がSSHで接続して開発・ビルドしたい方

まとめ

クラウドmacOSでVS Codeのリモート開発(SSH)を利用するには、Remote-SSH拡張のインストール、SSH鍵の生成と公開鍵の登録、~/.ssh/configの設定、そして「Connect to Host」での接続の4ステップで始められます。セキュリティ面ではパスワード認証の無効化と秘密鍵の厳重な管理を心がけてください。VNCMacの物理Macなら、VNCでデスクトップを確認しつつ、同じマシンにSSHでVS Codeから接続する運用が可能です。リモート開発環境の構築を検討中の方は、上記の手順を参考に、まずは小さなプロジェクトから試してみることをおすすめします。

クラウドmacOSでVS Code リモート開発を始めよう

VNCMacは仮想化ではない、占有型の物理Macを提供しています。Remote-SSHで接続し、そのままXcodeやiOSビルドまで一貫して開発できます。

  • Bare Metal Mac mini(M2/M4)を占有、SSH・VNC両対応
  • VS Code Remote-SSHでローカルと変わらない開発体験
  • 必要な時だけレンタル、コストを抑えられる