クラウド上の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 ~/.sshとecho "公開鍵の内容" >> ~/.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
HostNameとUserは、VNCMacの案内に記載された接続先とユーザー名に置き換えてください。
4 VS Codeから接続する
左下の「リモート接続」アイコンをクリックするか、コマンドパレットで「Remote-SSH: Connect to Host」を選び、上で設定したvncmac-devを選択します。初回はリモートにVS Code Serverがインストールされ、少し待つと接続が完了します。接続後は「ファイル」→「フォルダーを開く」でリモートMac上の任意のディレクトリを開いて開発できます。
セキュリティのベストプラクティス
クラウドMacをSSHで公開する場合は、次の点を守ることをおすすめします。
- パスワード認証は無効化する:
sudoで/etc/ssh/sshd_configを編集し、PasswordAuthentication noとPermitRootLogin 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から接続する運用が可能です。リモート開発環境の構築を検討中の方は、上記の手順を参考に、まずは小さなプロジェクトから試してみることをおすすめします。