この記事のポイント
- RunPod の GPU Pod に SSH で接続するには、
ssh-keygen -t ed25519で事前に鍵を作っておく必要がある - カスタム Docker テンプレートを使うと、起動のたびに環境を再構築しなくて済む
- VSCode の Remote SSH 拡張を使えば、Pod 内のファイルをローカル感覚で編集できる
- 料金は RTX 4090 なら Community Cloud で $0.34/hr から。使わない時間は止められるので思ったより安い
- 本記事の手順は Ubuntu 24.04 ローカル環境 + RunPod GPU Pods で動作を確認しています
RunPod を初めて使ったとき、いちばん詰まるのが「Web コンソールからは触れるのに SSH が繋がらない」問題です。答えは単純で、SSH 鍵の事前登録が必要なのですが、ドキュメントが英語かつ順番が分かりにくいため、多くの人が同じところで止まります。
この記事では、SSH 鍵の作成から Pod 起動・接続・VSCode 連携・カスタムテンプレートの保存まで、実際に試した手順を順番に説明します。RunPod の料金も GraphQL API から取得した 2026-06-20 時点の実測値で紹介します。

目次
- RunPod の料金と GPU の選び方
- SSH 鍵を作成する
- RunPod に公開鍵を登録する
- GPU Pod を起動する
- SSH で Pod に接続する
- カスタム Docker テンプレートを作る
- VSCode Remote SSH で接続する
- よくあるエラーと解決策
- まとめ
RunPod の料金と GPU の選び方
RunPod の GPU Pod には「Community Cloud」と「Secure Cloud」の2系統があります。Community Cloud は他ユーザーと物理サーバーを共有するため安い代わりに空きがないと使えないことがあります。入門段階では Community Cloud で十分です。
以下は RunPod の GraphQL API(api.runpod.io/graphql)から 2026-06-20 に取得した実測料金の抜粋です。
最初の実験には RTX 4090(Community Cloud $0.34/hr) がバランスよく使えます。24GB VRAM で Llama 3.1 8B 程度なら余裕があり、しかも安い。A100 や H100 は 1 時間で$1 を超えるので、慣れてからで十分です。
SSH 鍵を作成する
RunPod への SSH 接続には ED25519 形式の SSH 鍵を使います。RSA も使えますが、鍵が短く署名が速い ED25519 が今の標準です。
ローカルのターミナル(Mac / Linux / WSL)で次のコマンドを実行してください。
Generating public/private ed25519 key pair.
Your identification has been saved in /home/ubuntu/.ssh/runpod_key
Your public key has been saved in /home/ubuntu/.ssh/runpod_key.pub
The key fingerprint is:
SHA256:uEiuoHWsmLIPkrWjfEKEOFzyhcjTbb1SqEPU3cMN/DY runpod-myname
+–[ED25519 256]–+
$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024
上のコマンドを実行すると、~/.ssh/runpod_key(秘密鍵)と ~/.ssh/runpod_key.pub(公開鍵)の 2 ファイルが作られます。公開鍵(.pub)を RunPod に登録するのが次のステップです。秘密鍵は絶対に外に出さないでください。
実際に Ubuntu 24.04 の Docker コンテナで上記コマンドを実行し、出力を確認しました。
Ubuntu 22.04 と 24.04 で OpenSSH のバージョンが異なりますが、どちらでも ED25519 鍵の生成・接続には支障ありません。念のため実測した比較を載せておきます。
手順1:Windows の場合(PowerShell)
Windows では PowerShell(管理者不要)から同じコマンドが使えます。
Generating public/private ed25519 key pair.
Your identification has been saved in C:\Users\yourname\.ssh\runpod_key.
Your public key has been saved in C:\Users\yourname\.ssh\runpod_key.pub.
WSL2 を使っているなら WSL 内で Ubuntu と同じコマンドを使えます。PowerShell と WSL のどちらで作った鍵でも RunPod では同様に使えます。
RunPod に公開鍵を登録する
公開鍵を RunPod アカウントに登録します。Pod 起動前に済ませておくのがポイントです(起動後に登録しても、その Pod には反映されません)。
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKeIlz4gafO…BqqPplHlfq runpod-myname
cat コマンドで表示された内容を、次の手順で RunPod に貼り付けます。
- RunPod コンソール(
runpod.io/console)にログイン - 左メニューの「Settings」をクリック
- 「SSH Public Keys」セクションへスクロール
- 「Add SSH Key」ボタンを押して、
catで表示した公開鍵の内容を貼り付けて保存
正直、この手順を先に説明している日本語記事が少なくて、「SSH が繋がらない」という状態で時間を無駄にした経験があります。「Pod を起動してから鍵を設定しよう」だと手遅れです。

GPU Pod を起動する
SSH 鍵を登録したら Pod を起動します。
手順2:GPU Pod を選択して起動する
- 左メニューの「Pods」→「GPU Cloud」をクリック
- GPU 一覧から使用する GPU を選択(例:RTX 4090、$0.34/hr)
- 「Select」ボタンを押すと、テンプレート選択画面が表示されます
- 使いたいテンプレートを選択(詳細は次の章で説明)
- 「Deploy On-Demand」をクリック
起動すると Pod ステータスが「Initializing」→「Running」と変わります。通常 30 秒から 2 分程度です。ただし Community Cloud は在庫が少ない GPU では「Requesting」のまま止まることがあります。その場合は別の GPU タイプに切り替えるか、Secure Cloud に変更してください。
注意:Pod は起動中に課金が始まる
Pod が「Running」状態になると課金が開始します。作業が終わったら「Stop Pod」で停止するか、不要なら「Terminate Pod」で削除してください。停止中はストレージ料金($0.05/GB/月程度)のみかかります。
SSH で Pod に接続する
Pod が「Running」になったら SSH 接続します。全体の流れを先にまとめておきます。
手順3:接続コマンドを取得する
Pod 一覧の右側にある「Connect」ボタンをクリックすると、接続先の情報が表示されます。「SSH over exposed TCP」の欄にコマンドが表示されます。
ssh root@194.68.XXX.XXX -p 10022 -i ~/.ssh/runpod_key
このコマンドをターミナルに貼り付けて実行します。初回は「Are you sure you want to continue connecting (yes/no)?」と聞かれるので、「yes」と入力して Enter を押してください。
手順4:SSH 接続の確認
The authenticity of host ‘[194.68.XXX.XXX]:10022 ([194.68.XXX.XXX]:10022)’ can’t be established.
ED25519 key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘[194.68.XXX.XXX]:10022’ (ED25519) to the list of known hosts.
Welcome to RunPod!
root@xxxxxxxxxxxx:/workspace#
root@xxxxxxxxxxxx:/workspace# nvidia-smi | head -10
+—————————————————————————————–+
| NVIDIA-SMI 560.35.03 Driver Version: 560.35.03 CUDA Version: 12.6 |
| GPU 0: NVIDIA GeForce RTX 4090 (UUID: GPU-XXXXXXXXXX)
| Fan: 30% Temp: 32C Perf: P8 Pwr: 22W / 450W
| Memory-Usage: 0MiB / 24564MiB
+—————————————————————————————–+
nvidia-smi で GPU の認識が確認できれば成功です。/workspace は Pod を停止してもデータが残るストレージです。コードやデータはここに置くのを基本にしてください。
カスタム Docker テンプレートを作る
RunPod には公式テンプレート(RunPod PyTorch、RunPod CUDA 等)が用意されていますが、毎回同じパッケージを pip install するのは面倒です。カスタムテンプレートを使えば、起動時に必要なセットアップを自動で行えます。
手順5:カスタムテンプレートの主要設定
設定のポイントは 3 つです。
① Container Image を選ぶ
RunPod が公式に用意しているイメージが Docker Hub にあります。CUDA バージョンと Python バージョンを確認して選んでください。
runpod/pytorch:2.4.0-py3.11-cuda12.4.1-devel-ubuntu22.04
# Stable Diffusion WebUI を使う場合
runpod/stable-diffusion:web-automatic-cuda11.8.0
# 自分の Docker Hub イメージを使う場合
yourname/my-ml-env:v1.2
② Container Start Command でセットアップを自動化する
Pod 起動時に /workspace にある requirements.txt を自動でインストールする例です。
/workspace は Persistent Volume なので、ここに requirements.txt を置いておけば次回起動時も自動でインストールされます。Jupyter Lab を起動しておくとブラウザからも作業できて便利です。
③ Volume Mount Path は /workspace に固定する
RunPod では /workspace が Persistent Volume のデフォルトマウント先です。Pod を終了・削除してもこのパス以下のファイルは消えません。データセットや学習済みモデルは必ず /workspace 配下に保存してください。
注意:Pod を「Terminate」するとストレージも削除される
Stop Pod(停止)はデータを保持します。Terminate Pod(削除)はストレージごと削除されます。大事なファイルは Pod を終了する前に必ず外部にバックアップしてください。
VSCode Remote SSH で接続する
SSH が通ったら、次は VSCode から直接 Pod に接続します。ファイルのブラウジングや編集がローカルと同じ感覚でできるようになります。
手順6:~/.ssh/config を設定する
毎回長い SSH コマンドを打たなくて済むよう、設定ファイルに書いておきます。
Host runpod-mypod
HostName 194.68.XXX.XXX
User root
Port 10022
IdentityFile ~/.ssh/runpod_key
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
$ ssh runpod-mypod
Welcome to RunPod!
root@xxxxxxxxxxxx:/workspace#
StrictHostKeyChecking no は、Pod を作り直すたびにホスト鍵が変わる RunPod の特性に合わせた設定です。セキュリティ的にはゆるいですが、RunPod の GPU Pod は使い捨て前提の一時環境なので実用上は問題ありません。
手順7:VSCode で Remote SSH 接続する
- VSCode に「Remote – SSH」拡張(ms-vscode-remote.remote-ssh)をインストール
- コマンドパレット(Ctrl+Shift+P)→「Remote-SSH: Connect to Host」
runpod-mypod(先ほど設定した Host 名)を選択- 新しい VSCode ウィンドウが開いてリモートに接続されます
- 「Open Folder」で
/workspaceを開く
これで VSCode のエクスプローラに Pod 内のファイルが表示されます。ターミナルも Pod 内の shell が使えるので、GPU を使ったコードをそのままターミナルから実行できます。
VSCode で使えると便利な拡張機能(Remote SSH 接続後にインストール)
- Python(ms-python.python)— 補完・デバッグ・インタープリタ選択
- Jupyter(ms-toolsai.jupyter)— .ipynb をリモートで開いて実行
- GitHub Copilot — AI コード補完(有料)

よくあるエラーと解決策
「Permission denied (publickey)」で繋がらない
SSH 鍵の登録漏れか、鍵を登録した後に Pod を起動していないのが原因です。
debug1: Offering public key: /home/ubuntu/.ssh/runpod_key ED25519 SHA256:…
Permission denied (publickey).
対処:RunPod の Settings → SSH Public Keys で公開鍵が登録されているか確認し、登録後に Pod を新しく起動してください(既存の Pod に後から鍵を反映させることはできません)。
接続できるがすぐ切れる
Pod のメモリ不足や OOM Killer が原因のことが多いです。nvidia-smi が動く間に確認してください。
[ 1234.567] Out of memory: Kill process 1234 (python3) score 900 or sacrifice child
OOM が原因なら、より RAM の多い GPU プラン(例:A40 は 48GB VRAM に加えてシステム RAM も多め)に変更するか、処理するバッチサイズを減らしてください。
「Host key verification failed」が出る
Pod を作り直したときにホスト鍵が変わって known_hosts との不一致が起きます。
# Host [194.68.XXX.XXX]:10022 found: line 12
/home/ubuntu/.ssh/known_hosts updated.
Original contents retained as /home/ubuntu/.ssh/known_hosts.old
古い鍵を削除してから再度接続すれば解決します。頻繁に Pod を作り直すなら、前述の ~/.ssh/config に StrictHostKeyChecking no と UserKnownHostsFile /dev/null を設定しておくと楽です。
VSCode Remote SSH が「Could not establish connection」になる
VSCode のリモート接続では、Pod 側に VS Code Server をインストールする処理が走ります。Pod 起動直後で apt がまだ動いている場合や、ネットワークが不安定なときに失敗します。
対処:1〜2 分待ってから再接続、またはコマンドパレットから「Remote-SSH: Kill VS Code Server on Host」を実行して一度クリーンにしてから再接続してください。
まとめ
RunPod の Docker 環境・SSH 接続・VSCode 連携の手順を、実測データを交えてまとめました。
- SSH 鍵(ed25519)は Pod 起動前に作成して RunPod に登録しておく
- 接続コマンドは Pod の「Connect」ボタンから取得する
- カスタム Docker テンプレートと Start Command で環境構築を自動化できる
~/.ssh/configに書いておくと毎回の接続が楽になる- VSCode Remote SSH で Pod 内ファイルをローカル感覚で編集できる
- 料金は RTX 4090 で $0.34/hr から(2026-06-20 実測)、使わない時は Stop で節約
RunPod に慣れたら、次は Vast.ai との比較や、LLM の推論コストを計算して使い分けるとさらに費用を抑えられます。



コメント