2026 年にコーディング Agent をノート PC へ置く失敗は、モデルが弱いことではない。ふたを閉じると止まり、ホームには私用ファイルが混ざり、API キーが shell の履歴に残る。Linux VPS は「常時動く実行環境」と「手元のエディタ」を分けられる。この手順は事業者の登録から始まり、VS Code または Cursor でそのマシン上のファイルを編集するところで終わる。受け入れは「SSH が通る」ではない。ノート PC を切ったあとも tmux のセッションが残り、Agent が大きな変更をする前のスナップショットがあることだ。
AI コーディング環境がノート PC を離れる理由
古いやり方は、手元に CLI を入れて Agent にホームを直接書かせる。新しいやり方は、作業ツリー、依存キャッシュ、長いセッションを開発専用の VPS に置き、ノート PC は表示とキー入力だけを担う。争点は「クラウドが高いか」ではない。実行境界だ。ふたを閉じればローカルのプロセスは死ぬ。システム更新は長い作業を切る。同じディスクにはブラウザのログインと私用リポジトリが残る。VPS はそれらを Agent の既定の書き込み範囲から外す。
VPS が解かない仕事もある。Linux VPS に macOS はなく、iOS の署名も Xcode もない。学習クラスタでもない。ホストされたモデルを呼ぶコーディング Agent が使うのはメモリ、ディスク、安定したセッションであり、データセンターの GPU ではない。目的がリモートでリポジトリを直すことではなくローカル推論なら、先に AI PC の選び方 を見る。アプリケーションを書くために GPU マシンを買わない。
体感を決めるのはプラン名よりリージョンだ。Remote SSH の遅延は自分と VPS の間にあり、モデル API の遅延は VPS とモデル側の間にある。東アジアに座ってマシンが米国東部なら、モデルが速くてもキー入力が先に遅れる。席に近いリージョンを選び、そのあとコア数を話す。
VPS は持ち主の分かった開発専用機として扱う。メールやチャットも載せる予備 PC ではない。個人のログインと Agent が同じホームを共有した瞬間、ノート PC の問題を他人のハードウェア上で再現している。マシンは一台、仕事は一つ、ユーザーは dev。この制約があるから、あとで受け入れができる。
AI コーディング環境を五つの層に分ける
広告の形容詞ではなく層で買う。踏み台、コーディング VPS、ビルド機、macOS ノード、GPU クラウドは別の問いに答える。それらを一種類の「クラウドサーバ」として比べると、2GB で Node を動かし、Linux で iOS をコンパイルしようとする。
| 層 | 担当 | 足りないときの症状 | 載せないもの |
|---|---|---|---|
| 踏み台 | SSH だけ | インストールの途中で殺される | Agent、データベース、コンテナ |
| コーディング VPS | git、言語ランタイム、CLI Agent 一つ、tmux | 並列テストとコンテナがメモリを奪い合う | Xcode、モデル学習 |
| ビルド機 | より多いコアとメモリ、コンテナ | 対話的な編集が重くなる | 日常のブラウザログイン |
| macOS ノード | 署名、シミュレータ、Apple のツールチェーン | Linux にはそのツールが無い | 汎用 Linux ホストとして扱うこと |
| GPU クラウド | 学習と大きな推論 | バグ修正の合間に GPU が空く | 日常のリポジトリ編集 |
コーディング層の実用下限は 4 vCPU、メモリ 8GB、ディスク約 80GB だ。1GB や 2GB は踏み台にすぎない。ディスクは node_modules、言語キャッシュ、いくつかのチェックアウトを載せる。ルートがおおよそ八割を超えたら、ディスクを増やす前にキャッシュを消す。ネットワーク障害に見える曖昧なエラーを待たない。
ホストされたモデルを待つ Agent では、コア数は人が思うほど効かない。常駐するのはエディタサーバ、言語サーバ、Node か Python、そして Agent だ。だから 8GB は贅沢ではなく下限になる。同じマシンで Docker とブラウザ級の E2E も走らせるなら、もう一段階上げる。リファクタの途中で限界を見つけない。
分水嶺はモデルではなくリモート入口
モデルの巧さは分水嶺ではない。実行境界がどのマシンにあるかが分水嶺だ。一人が Cursor と Claude Code を同時に持っていても、片方がノート PC のコピーを直し、もう片方が VPS のチェックアウトを直すなら、見ている diff は Agent が書いたと思っている diff ではない。
| ツール | 入口 | 実行 | コンテキスト | 向いている人 |
|---|---|---|---|---|
| VS Code Remote SSH | 手元のエディタが VPS に付く | ターミナル、デバッグ、拡張は遠隔で動く | 遠隔のリポジトリ | 慣れたエディタを残したい人 |
| Cursor Remote SSH | 同じ SSH | 補完と Agent は遠隔ファイルを直す | 遠隔ワークスペース | エディタと Agent に同じチェックアウトを見せたい人 |
| Claude Code または Codex CLI | VPS 上の tmux | ファイル変更とテスト実行ができる | 意図して開いたディレクトリ | ふたを閉じても続けたい長い作業 |
| リモート Mac | 遠隔の macOS | Xcode、署名、iOS Simulator | Apple のプロジェクト | ツールチェーンが macOS を要求する人 |
この記事はモデルを順位づけしない。入口、実行、コンテキストの差は Pi、Claude Code、Codex の比較 にある。ここでは CLI を一つ選び、tmux に入れ、エディタを同じマシンの同じチェックアウトに向けるだけでよい。
Remote SSH の初回はホスト鍵の信頼を求めてくる。受け入れる前に、事業者コンソールに出ているフィンガープリントと照合する。そのあとエディタが開くのは遠隔フォルダであり、ずれていく同期コピーではない。ステータスバーがまだローカルなら、間違ったディスクを編集しようとしている。
プラン名ではなく仕事でマシンを選ぶ
| こんな人なら | 選ぶ | 選ばない |
|---|---|---|
| モデルと話すだけでリポジトリは直さない | 手元のクライアント | どの VPS も |
| Web やバックエンドを書き、ふたを閉じてもテストを続けたい | 8GB 以上のコーディング VPS と tmux | 1GB の踏み台 |
| コンテナと E2E を同時に走らせる | メモリをもう一段階上げたビルド機 | 対話編集と 8GB を共有すること |
| iOS をビルドする、または Xcode を使う | リモート Mac のレンタル | Linux VPS |
| 重みを学習する | GPU クラウド | このコーディング VPS |
| 一人の遠隔編集ではなく、チームの長い自動化が要る | クラウド Mac 上の自動化 | 個人 VPS にパイプラインを押し込むこと |
個人のコーディング VPS とノート PC の差はセッションとディスク境界であり、「より賢い」ことではない。チームのパイプラインには権限、ログ、誰がログインできるかの記録も要る。それは別のマシンだ。二人目が欲しいからといって、この手順の dev でパスワードログインを気軽に戻さない。
足りる組み合わせ
OS は Ubuntu 24.04 LTS。ユーザーは dev。sudo はパスワードを求め、Agent は root では動かさない。SSH は ed25519 だけ。パスワードログインは止めるが、鍵ログインがすでに成功し、事業者のウェブコンソールが開いたままのときだけ止める。ランタイムは git、Python 3、Node 22 LTS、tmux。API キーは ~/.config/ai-dev/provider.env に置き、ディレクトリは 700、ファイルは 600、パスはリポジトリの無視リストに入れる。
エディタ側は VS Code または Cursor の Remote SSH。Host ブロックは VPS ではなく自分の PC の ~/.ssh/config に書く。長い作業は agent のような固定名の tmux に入れる。Agent に広い変更をさせる前に、事業者コンソールでスナップショットを取る。
Node 22 LTS はディストリビューションか、NodeSource のその時点の説明で入れる。受け入れは node -v であり、「スクリプトがエラーを出さなかった」ではない。Python と git も同じだ。バージョン文字列は観察であり、黙ったインストーラは観察ではない。
環境を無効にする五つの誤り
- 踏み台のメモリでコーディング一式を動かす。 Node がインストール途中で死ぬ。ネットワーク障害に見えて、実体はメモリだ。
- 鍵が通る前にパスワードログインを止める。 順序は、新しい鍵セッションが成功し、古いコンソールを開いたまま、それから sshd を変える。
- API キーをコマンドラインに書く。 shell の履歴に入り、Agent もその履歴を読める。キーは 600 のファイルからだけセッションに入る。
- dev にパスワードなし sudo を付ける。 Agent はコマンドを実行できる。パスワードなし sudo は、誤った一つのコマンドで sshd やファイアウォールを書き換えられる。sudo のパスワードは残す。
- iOS プロジェクトを Linux に clone して xcodebuild を探す。 そのツールは現れない。最初から リモート Mac に置く。
六つ目の静かな誤りは、Agent にホーム全体を見せることだ。捨てられるリポジトリをワークスペースとして開く。キャッシュとキーファイルは隣にあってよいが、プロンプトのコンテキストでも git ツリーでもない。Agent の最初の行動がドットファイルの「掃除」なら、ディスクを渡しすぎている。
登録からリモート開発までの七手順
各手順には観察できる結果がある。それを見るまで次へ進まない。
- 登録。 二要素認証を有効にし、近いリージョンを選び、公開 IP を控える。請求メールと復旧コードは、これから Agent に渡すマシンではなく、自分のパスワードマネージャに置く。
- 鍵。 自分の PC で ed25519 を作り、
.pubだけを事業者に貼る。秘密鍵はノート PC に残す。 - ユーザー。 dev を作り sudo に加える。dev で鍵ログインが成功してから、root ログインとパスワードログインを止める。その変更が証明されるまで、すでに開いているコンソールは閉じない。
- ランタイム。 git、コンパイラ、Python、tmux、Node 22 LTS を入れる。バージョンコマンドで受け入れ、黙ったインストーラでは受け入れない。
- リポジトリ。 dev で捨てられるテストリポジトリを clone し、既存テストを走らせる。Agent が後で受け取るのはそのディレクトリであり、ホーム全体ではないと確認する。
- Agent。 ベンダーの現行ドキュメントに従って CLI を一つ入れる。キーは 600 の env ファイルから読む。tmux の中で起動する。最初のセッションはリポジトリの形を説明させ、リファクタはさせない。
- リモート編集。 手元の SSH 設定に Host を足し、VS Code または Cursor で接続し、ファイルを一つ変えてテストブランチへコミットする。ノート PC を切り、コンソールから
tmux attach -t agentを実行する。セッションが残っていればスナップショットを取る。その観察が、環境の完成だ。
ssh-keygen -t ed25519 -C "ai-dev-vps" -f ~/.ssh/id_ed25519_ai_vps # 上げるのは id_ed25519_ai_vps.pub だけ
sudo adduser dev sudo usermod -aG sudo dev sudo apt update sudo apt install -y git tmux build-essential python3 python3-venv python3-pip # Node 22 LTS はディストリビューションか現行の NodeSource 手順 node -v python3 --version git --version
Host ai-vps HostName YOUR_VPS_IP User dev IdentityFile ~/.ssh/id_ed25519_ai_vps IdentitiesOnly yes
mkdir -p ~/.config/ai-dev chmod 700 ~/.config/ai-dev install -m 600 /dev/null ~/.config/ai-dev/provider.env # provider.env は一行。例 ANTHROPIC_API_KEY=replace-me tmux new -s agent
/etc/ssh/sshd_config.d/99-ai-dev.conf へ PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes を書く前に、別の鍵セッションを開く。事業者コンソールは残し、唯一の扉を自分で閉めない。
SSH だけを通し、残りを拒むファイアウォールは同じ手順の一部であり、別プロジェクトではない。事業者のパネルがすでに通信を絞っているなら、自分を締め出す二つ目の規則を重ねない。制御を一つ変え、鍵ログインを試し、次を変える。この部分のロールバックはコンソールであり、Agent のロールバックがスナップショットであるのと同じだ。
プランを決める質問
1GB や 2GB の VPS で AI コーディングは足りますか?
足りません。そのサイズは SSH を生かすだけです。Node、言語サーバ、コーディング Agent が同時に常駐するなら、日常作業の下限は 8GB です。Docker と並列テストはもう一段階上げます。
コーディング Agent に GPU 付き VPS は必要ですか?
ホストされたモデルを呼ぶだけなら不要です。GPU は学習と大きなローカル推論に残します。日常のリポジトリ作業で買うのはメモリ、ディスク、自分に近いリージョンです。
Linux VPS で iOS をビルドできますか?
できません。署名、シミュレータ、xcodebuild は macOS の側です。リモート Mac を使い、Linux に現れないツールを午後いっぱいで探さない。
API キーを VPS に置いて大丈夫ですか?
自分が管理するマシンで、権限が狭く、リポジトリがそのファイルをコミットできない場合に限って相対的に安全です。ファイルは 600、ディレクトリは 700。シェル履歴に残さず、root の Agent にも渡さない。
SSH できたら環境完成ですか?
違います。受け入れは、ノート PC を切ったあとも tmux が残り、Agent がテストリポジトリを変更でき、その前にスナップショットがあることです。
判断の置き場所
先に実行境界を決め、それから登録する。コーディング VPS は、ふたを閉じても動き続けてほしい Linux リポジトリに向く。Xcode と署名は macOS ノードへ。学習は GPU へ。リモート開発が揃うのは七手順のすべてに観察があるときであり、SSH のバナーが出たときではない。扉が開いているのは、扉が開いているというだけだ。
関連記事
ツールチェーンが macOS なら、リモート Mac に切り替える
Linux VPS は git、テスト、CLI Agent を動かせる。iOS の署名も Xcode もできない。Apple のツールチェーンが要る作業は、Linux に押し込まず専用のリモート Mac を使う。