RunPodのSSHキー設定とrsyncによる大容量ファイル転送まとめ【初心者向け】

SSHキー設定とrsyncによる大容量ファイル転送

目次

SSHキーを設定すると出来る事

AI画像生成や大容量モデルの利用をRunPodなどのクラウドGPU上で行う場合、WebブラウザのUIだけでは管理やファイル転送に限界があります。
特に、非公開モデルや数GB単位の大きなデータを扱うとき、ブラウザ経由のアップロードは途中で止まったり失敗することもあります。

そんなときに活躍するのが SSHキーによる接続 です。
SSHキーを設定しておけば、パスワードなしで安全にサーバーにアクセスでき、コマンド操作やファイル転送、バッチ生成、バックアップなど、WebUIではできない便利な操作を行えます。

この記事では、SSHキー取得方法から、RunPodへの登録手順、大容量モデルの安全な転送方法までを初心者にも分かりやすく解説します。

SSHキーの設定方法

SSHキーの作成は、ローカルPCでターミナルから行います。

Windows のターミナルの起動方法…

Windows Terminal起動方法

  1. スタートメニューで、左クリック➡ターミナル もしくは、「Windows Terminal」と検索して起動

※ デフォルトでは PowerShell または WindowsPowerShell)が開きます
画像生成用途の場合は、コマンドプロンプト(CMD)と相性が良いです。
pip install や conda などのモダン開発向けコマンドは、PowerShellと相性が良いです。

(※コマンドプロンプト(cmd)をWindows Terminal から開く為の設定方法はこちらの記事をご覧ください。

Windows Terminalは、タブを切り替えて複数のシェルを使う事が出来ます

  • 上部の ボタンから新しいタブを開けます

※Microsoft 公式も「Windows Terminal」を推奨

Mac のターミナルの起動方法…

ターミナル起動方法

  1. **「Command ⌘ + Space」を押して、「Spotlight検索」**を開く
  2. 検索バーに「ターミナル」と入力してEnter

または、以下の手順でも開けます:

アプリケーションユーティリティターミナル

Linux のターミナルの起動方法…

Linuxターミナル起動方法

  • 1,:Ctrl + Alt + T を同時に押す(多くのLinuxディストリビューションで共通)
  • 2,:アプリケーション一覧から「ターミナル」または「Terminal」で検索して開く

Ubuntu、Fedora、Debianなど、ほとんどのLinux環境に標準で搭載されています。

PowerShell の起動方法…(Windows)

PowerShell(パワーシェル)**は、Windowsに標準搭載されている、より高度な操作ができるコマンドラインツールです。見た目はコマンドプロンプトと似ていますが、より多機能で、プログラミング的な処理も得意です。

PowerShell起動方法

1,スタートメニューで「PowerShell」と検索してクリック

※ コマンドプロンプト(cmd)の起動方法…(Windows)

Windowsキー + Rを押す

cmd」と入力してEnterを押す
または、スタートメニューで「コマンドプロンプト」と検索してもOK!

コマンドプロンプト(cmd)は、Windowsのターミナルからも開く事が出来ます
(※コマンドプロンプト(cmd)をWindows Terminal から開く為の設定方法はこちらの記事をご覧ください。

Windows(コマンドプロンプト:cmd.exe

Windowsのコマンドプロンプトを使用する場合は、以下の手順で作成します。

未来

ここから順にコピペで進めますよ!

SSHkey取得方法 cmdターミナル①
ssh-keygen -t ed25519 -f "%USERPROFILE%\.ssh\runpod_key"
  • ssh-keygen → 鍵を作成するコマンド
  • -t ed25519 → 鍵の種類(安全で軽量な最新方式)

実行の流れ

  • 上のコマンドを入力してEnter
  • Enter passphrase (empty for no passphrase): と聞かれたら → そのまま Enter(または任意のパスフレーズを入力)
  • Enter same passphrase again: → もう一度同じもの(空なら再度 Enter)
  • 完了するとこのような表示になります:-f "%USERPROFILE%\.ssh\runpod_key" → 保存場所を指定
    • 秘密鍵: C:\Users\Owner\.ssh\runpod_key
    • 公開鍵: C:\Users\Owner\.ssh\runpod_key.pub

RunPod に公開鍵を登録する

SSHkey取得方法 cmdターミナル②

公開鍵の中身をコピーする

コマンドプロンプトで以下を実行します。

type "%USERPROFILE%\.ssh\runpod_key.pub"

すると、こんな感じの長い文字列が表示されます。

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExxxxxxxxxxxxxxxxxxxxxxxxxxxx Owner@PC

この1行を 丸ごとコピー

RunPod ダッシュボードで SSH Key を登録する

  1. ブラウザで RunPod にログイン
  2. 右上のプロフィールアイコンをクリック → Settings を選択
  3. 「 SSH Key」 をクリック
  4. 「Update public key」をクリック
RunpodでSSHキーの設定
RunpodのSSHキーの設定

鍵を使って接続する

登録が終わったら、コマンドプロンプトでSSH接続を確認

ssh -i "%USERPROFILE%\.ssh\runpod_key" ucggptb5jq77i9-64411bc9@ssh.runpod.io

PowerShell(推奨)

PowerShellの場合も、上のコマンドプロンプトと同じ要領で順にすすめます。

# .ssh 作成
New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.ssh

# 鍵を作成
ssh-keygen -t ed25519 -f $env:USERPROFILE\.ssh\runpod_key

# 公開鍵をクリップボードへ(貼り付けで RunPod に登録)
Get-Content $env:USERPROFILE\.ssh\runpod_key.pub | Set-Clipboard

# 接続例
ssh -i $env:USERPROFILE\.ssh\runpod_key ucggptb5jq77i9-64411bc9@ssh.runpod.io

Git Bash / WSL(Ubuntu等)

# ディレクトリ作成
mkdir -p ~/.ssh && chmod 700 ~/.ssh

# 鍵作成
ssh-keygen -t ed25519 -f ~/.ssh/runpod_key

# 公開鍵をコピー
cat ~/.ssh/runpod_key.pub | clip   # Git Bash
cat ~/.ssh/runpod_key.pub          # WSLの場合は出力をコピー

# 接続例
ssh -i ~/.ssh/runpod_key ucggptb5jq77i9-64411bc9@ssh.runpod.io

重いファイルの転送方法

通常のファイルは 、JupyterLab などのUIからのアップロード方法が便利ですが、
重いファイルの場合は、
直リンク+wget (CivitaiやHuggingFaceなどの公開されているモデルの場合)か、
SHHキーを設定して、sync で送る(自分しか持ってないモデルや非公開データの場合 )
という方法がスムーズです。

JupyterLab などのUIからのアップロード

大きいファイルはブラウザ経由だと、失敗しやすい。

SAKASA

おとなしくDL待ちしていたのに失敗に終わった時は、ほんとにツラいからね・・・

未来

わかる~。絶望感が半端ないよね・・・

数MB〜100MB程度 → JupyterLabのUpload
100MB〜1GB前後 → scprsync を使うのが安全
数GB以上の巨大ファイル → rsync(途中再開OK)

scp(セキュアコピー)を使う方法

PC → サーバーに直接ファイルをコピーできる。

例(PCからサーバーへアップロード)

scp myfile.png username@server-ip:/workspace/

例(サーバーからPCへダウンロード)

scp username@server-ip:/workspace/output.png .

大きいファイルでも分割せずにそのまま送れる。


rsync を使う方法(おすすめ)

  • scpより高速で、途中で止まっても再開可能。
  • 差分コピーもできるので、大量ファイルや再送時も効率的。
  • PC → サーバー
rsync -avP -e "ssh -i ~/.ssh/runpod_key" mybigfile.safetensors username@server-ip:/workspace/models/

途中で止まっても、再実行すれば続きからコピーしてくれます。

Windowsで rsync を使う方法

rsync を使うための条件

  • Pod が起動している(SSH接続可能)
  • SSH接続できること(鍵でもパスワードでもOK)

Git Bash を使う(手軽)

スタートメニューで確認

  1. Windowsのスタートメニューを開く
  2. 「Git Bash」と検索
  3. アプリが表示されればインストール済み、なければ未インストール

未インストールの場合

  1. Git bash をインストール
    https://git-scm.com/downloads/win
  2. インストール時に「Git Bash Here」を有効にする
  3. インストール完了後、スタートメニューや右クリックメニューからGit Bashを起動可能

SSH鍵の確認方法

PowerShellか、Git Bashで以下のコマンドを打ち、SSHキーファイルが表示されれば 使用可能です。
※PowerShellでもGit Bash / WSLでも、SSH・scp・rsyncの構文は共通

Git Bash / WSL

ls ~/.ssh/runpod_key
ls ~/.ssh/runpod_key.pub
Git bashで確認

PowerShell

Test-Path $env:USERPROFILE\.ssh\runpod_key
Test-Path $env:USERPROFILE\.ssh\runpod_key.pub

PC → サーバーへアップロードする際の構文

SSH接続

ssh -i ~/.ssh/runpod_key ucggptb5jq77i9-64411bc9@ssh.runpod.io

rsyncで転送

rsync -avP -e "ssh -i ~/.ssh/runpod_key" mybigfile.safetensors username@server-ip:/workspace/models/
-i path/to/private_key

-e "ssh ..." の部分は rsync に「リモート接続に使うコマンド」を指定するためのオプション
-e → リモート接続に使うコマンドを指定

"ssh -i ~/.ssh/runpod_key" → SSHで接続するときにこの秘密鍵を使え、という意味

runpod_keyコマンド上で -i ~/.ssh/runpod_key と書くことで、SSHやrsyncはこのファイルの中身を読み込んで認証する

mybigfile.safetensors

転送するファイル名

username@server-ip

→ 接続先の情報

  1. username
  • 接続先サーバーの ユーザー名
  • RunPodでいうと、Podに割り当てられたアカウント名
  • 例:
ucggptb5jq77i9-64411bc9

WebUIやSSHの案内で表示されているもの

  1. server-ip
  • 接続先サーバーの IPアドレス
  • RunPodの場合、SSH接続情報にある exposed TCPのIP
  • 例:
69.30.85.22
/workspace/models

→ 接続先での保存先ディレクトリ

rsync -avP -e "ssh -i ~/.ssh/runpod_key" mybigfile.safetensors ucggptb5jq77i9-64411bc9@69.30.85.22:/workspace/models/

上記の様に、それぞれのパーツを当てはめて下さい。

Pod からPCへのダウンロードする際の構文

rsync -avP -e "ssh -i ~/.ssh/runpod_key" ucggptb5jq77i9-64411bc9@69.30.85.22:/workspace/output/mybigfile.safetensors ./output/

./output/ → PC側の保存先ディレクトリ

途中で止まっても -P オプションで再開可能


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次