Claude Media
Claude ScienceのHPC接続 — SSH・ログインノード経由の仕組み

Claude ScienceのHPC接続 — SSH・ログインノード経由の仕組み

Claude Scienceが研究室のHPCクラスタとどう繋がるかを、SSHホスト接続・リモートLinuxサーバー運用・Modal連携の3方式で解説します。ターミナルで完結するClaude Codeとの接続コストの違いも扱います。

Claude ScienceのSSHホスト接続とリモートLinuxサーバー運用は、データを研究室の外に出さずにHPCクラスタへ計算を投げられるように設計されています。GPUが必要なときの3つ目の経路であるModal連携だけは、データがModalのクラウドに送られる点で前の2つと異なります。

Claude ScienceはHPCとどう繋がるのか

Claude Scienceの機能全体とは切り離して、本稿は計算資源への繋ぎ方だけを掘り下げます。接続方式は3つです。

方式

計算資源への3つの繋ぎ方

  • リモート計算クラスタ

    アプリは手元のPCで動かしたまま、ジョブの実行だけをSSH経由でHPCクラスタや研究室のワークステーションに委ねます。

  • リモートLinuxサーバー

    アプリ本体をクラウドVMやHPCログインノードに置き、手元のブラウザからSSHトンネル越しに操作します。

  • Modal連携

    自前のクラスタを介さず、利用者自身のModalアカウントでGPUジョブをオンデマンドに実行します。

どれを選ぶかで、データの置き場所と、誰の権限でジョブが走るかが変わります。

SSHホスト接続 — ジョブだけをHPCに投げる仕組み

Claude Scienceを手元のPCやラボのLinux機で動かしたまま、計算だけを別のマシンに投げるのが「リモート計算クラスタ」機能です。ホスト側へのインストールは不要で、既存の~/.ssh/configをそのまま使います。ジョブスクリプトと入力は利用者のPCからホストへ直接送られ、出力も同じ経路で戻ります。Anthropicを経由しません。

手順

SSHホストを追加する流れ

  1. 1

    Settings > Compute > SSH hosts > Add SSH hostを開く

    画面はアプリの設定から入ります。

  2. 2

    `~/.ssh/config`のエイリアスを選ぶ

    アドレス・ユーザー名・ポート・ProxyJumpはこのファイルから読み込まれます。AdvancedでUser・Port・Identity fileを上書きすることもできます。

  3. 3

    ホストのメモを書く

    パーティション、アカウントコード、モジュールのロード手順、ソフトを入れてよいかどうかを任意で書けます。Claudeは最初のジョブの前にこれを読みます。

  4. 4

    Addを押してプローブを走らせる

    CPU数・メモリ・GPUとCUDAドライバ・conda / モジュール / Apptainerの有無・スクラッチ領域・sbatchの有無が記録されます。Slurmならパーティションまで読み取ります。Probeで再実行できます。

鍵やssh-agentによる認証が基本ですが、パスワードで入るマシンにも対応しています。パスワードは必要になった時点で入力を求められ、ディスクには保存されません。この対応は0.1.21からです。

プローブ結果はホスト詳細ページの編集可能なメモに保存されます。書き足した内容は次回以降のジョブで参照されます。

実行方式はSlurmかデタッチプロセスの二択

sbatchがあるホストでは、ジョブは既定でSlurmに投入されます。ワークステーションのようにsbatchが無いホストでは、端末から切り離されたプロセスとしてその場で走ります。どちらも接続が切れてもジョブは続きます。

PBSやLSFなど、Slurm以外のスケジューラーには投入しません。そうしたクラスタでは、サイトの規則が許すなら、ジョブを直接走らせてよいホストを別に登録することになります。ホスト詳細ページでは、スクラッチディレクトリ(Slurmでは共有ファイルシステム上が条件)と同時実行数の上限(既定100)を設定します。

Claudeがリモートジョブを提案すると、コマンドとスクリプトを示す「Run this job onホスト名?」カードが出ます。承認の範囲は「今回のみ」「この会話」「このプロジェクト」「常時」から選びます。承認するとジョブスクリプトと入力がスクラッチ配下のジョブ用ディレクトリにコピーされます。

ジョブの既定タイムアウトは30分です。長い計算は提出前にClaudeへ伝えます。出力はセッションに引き戻されますが、既定で約100MBを超えるファイルはホスト上に残り、Claudeはパスだけを記録します。

リモートLinuxサーバー運用 — アプリ本体をログインノードに置く

もう1つの方式は、Claude Science本体をクラウドVMやラボのLinuxサーバー、HPCログインノードにインストールし、手元のブラウザからSSHトンネル経由で操作するやり方です。SSHホスト接続がジョブの投入先を切り替えるだけなのに対し、こちらはアプリと会話履歴、データの置き場所をサーバー側に固定します。複数のPCから同じプロジェクトを見たいときにも、この構成が使えます。セットアップは5分程度で、初回起動時の環境構築に数分かかります。

サーバー側の要件はx64かつglibcベースのLinuxです。arm64とAlpineのようなmusl系は対応外です。空きディスクは約5GBで、サンドボックス用にbubblewrap(0.8.0以降。bwrap --versionで確認)とsocatが要ります。Ubuntu 24.04は条件を満たし、22.04はbubblewrapが古く、別途アップグレードが必要です。アカウントはPro・Max・Team・Enterpriseのいずれかが必要で、Freeプランはサインインの手前で止まります。サンドボックスを用意できないときは、コードを無防備に走らせず起動自体を拒否します。

sudo apt-get update && sudo apt-get install -y curl bubblewrap socat
curl -fsSL https://claude.ai/install-claude-science.sh | bash

インストーラーは最新リリースを取得しチェックサムを検証して、claude-scienceコマンドを~/.local/binに置きます。PATHの追記が必要なら1行が表示されるので、シェルの設定ファイルに足してからclaude-science --versionで確認します。

サーバーを起動する前に、ポートフォワードを済ませておきます。起動時に表示されるサインインリンクの有効期限は約3分だからです。使うポートは2つあります。Web画面用の8000番と、生成したHTMLのプレビュー専用の8001番(既定はWebアプリのポート+1)です。プレビューを別オリジンで配信するのは、プレビュー中のページがセッションを読めないようにするためです。

ssh -L 8000:localhost:8000 -L 8001:localhost:8001 you@server.example.com

このターミナルは開いたままにします。トンネルはSSH接続が続く間だけ有効です。VS CodeのRemote-SSHなら使用中のポートを自動で転送しますが、Portsパネルで2つとも転送されているかは見ておく必要があります。

サーバー側ではclaude-science serve --no-browserで起動します。常駐させるなら--detachedを付け、claude-science statusで稼働状況を、claude-science stopで停止します。

claude-science serve --no-browser --detached
claude-science status

初回はhttp://localhost:8000/?nonce=...形式のサインインリンクがすぐ表示され、裏でPythonとRの初期環境構築が進みます(数分、約5GB)。ブラウザで開いたリンクは1回しか使えず、約3分で失効します。失効したらサーバー上でclaude-science urlを実行すれば出し直せます。stopのあとのserveでも新しいリンクが出ます。サインインのリダイレクトがトンネル越しに戻らないときは、サインイン画面のPaste code insteadを選びます。更新はclaude-science updateです。

ポートが衝突したときの挙動

--portを付けずに起動して8000番が使用中なら、次の空きポートで起動し、その旨を表示します。--portで指定したポートが使用中だと、起動せず別のポートを選ぶよう求められます。プレビュー用ポートが使われていれば空きポートへ自動で移るので、claude-science urlが出力する2つのポートを、それぞれ両端に同じ番号を書いて転送します。共用のログインノードでは他の利用者が8000番を握っていることがあるため、自分のポートを--port 8765のように決めておくのが安全です。この場合プレビューは8766番になり、ssh -Lの転送先もこの2つに合わせます。

つまずきやすい症状

症状原因
bwrap too old原因bubblewrapが0.8.0未満
cannot create unprivileged user namespaces原因カーネルかAppArmorが名前空間の作成を止めている。一部のUbuntu 24.04イメージで出る
グラフがすぐ静止画になり反応しない原因プレビュー用ポートが転送されていない
daemon already running on port 8000原因すでに起動済み。claude-science urlで新しいリンクを出す
ブラウザからlocalhost:8000に届かない原因トンネルが張れていない。張れているならclaude-science statusで稼働を確認する

ログインノードに本体を置くか、SSHホストとして足すか

HPCのログインノードにClaude Science本体を入れると、Claudeの解析コードはログインノード上で動きます。長時間や重い処理を禁じているサイトは多く、まずサイトの規則の確認が前提になります。ホームには環境用に約5GBが要り、プロジェクトの置き場を別にしてもこの容量は変わりません。ログインノードが複数あるクラスタでは、アドレスが振り分ける先ではなく、本体が動いているノードにトンネルをつなぎます。そのノードでhostnameを実行すると名前が分かります。

使い分け

ログインノード運用とSSHホスト登録の違い

サーバー運用

本体をログインノードに置く

解析コードもログインノード上で、サンドボックス内で動きます。bubblewrap・socat・カーネル設定が必要で、通常は管理者の作業です。会話履歴がサーバーに残り、複数のPCから同じプロジェクトを開けます。

SSHホスト

手元に本体を置き、SSHホストとして足す

ジョブは自分のアカウントでサンドボックスの外で動くため、bubblewrapもsocatもカーネル設定も要らず、管理者権限が不要です。ただし組織がSSHホストを許可している必要があります。

sudoが無くても、インストール自体はルート権限が要りません。claude-scienceは~/.local/binか、環境変数CLAUDE_SCIENCE_INSTALL_DIRで指定した自分のフォルダに入ります。足りないのはサンドボックス側の条件で、Ubuntu 23.10以降ではbubblewrapに名前空間作成を許すAppArmorプロファイルも要ります。起動時に不足している項目が1つ名指しされ、直すと次の項目が名指しされる流れです。

GPUが必要ならModalという第三の経路

自前のクラスタを介さずにGPUを使いたい場合は、利用者自身のModalアカウントに計算を投げられます。課金はModalから利用者に直接行われ、Anthropicは支払い方法を扱いません。modal token newでログイン済みなら~/.modal.tomlを自動で読みます。そうでなければSettings > CredentialsのModal欄にトークンIDとシークレットを貼ります。トークンは暗号化してPC内に保存され、Claudeには見えません。

GPUやメモリが必要な処理では、「Start a Modal job?」カードが出ます。カードにはH100・8 CPU・32 GiBのような具体的なマシン仕様、秒単位課金である旨、課金される上限時間が載り、Modalの料金ページへのリンクもあります。承認はジョブ単位・会話単位・プロジェクト単位です。Modalのセットアップ用シェルを開く場合は別のカードで確認があり、上限は30分でGPUは付きません。

数字

Modalジョブの上限値

  • 同時実行数

    10

    既定。このPCのClaude Scienceが動かせるコンテナの上限

  • コンテナのタイムアウト

    12時間

    既定。最大23時間まで延長

  • 入力ファイル

    1GiB

    1回の投入あたり。超える分はModal Volumeへ

  • 出力

    5GiB

    ./out/ 配下に書いた分が返る

支出の上限は無く、ジョブごとに個別承認する形です。支出はModalのダッシュボードで追います。アプリを閉じても実行中のジョブは止まらず、終了かタイムアウトまで課金が続きます。

組織側の制御もあります。管理者はModalのワークスペースを限定でき、アプリは~/.modal.tomlのラベルではなく、トークンについてModalが返すワークスペースを照合します。許可外なら「このModalワークスペースは管理者に許可されていない」と表示され、許可されたワークスペースのトークンへ差し替えるまでジョブは走りません。ネットワーク許可リストを組織が管理している場合は、ModalページのNetwork restrictionsをAllowlistかNo networkにしておく必要があります。していないと、無制限のModalジョブは拒否されます。

同じSettings > Computeには、科学用モデルのエンドポイントを繋ぐ欄もあります。NVIDIA BioNeMo NIMはその1つで、NVIDIA提供のAPIにも、GPUを積んだマシン上のローカルコンテナにも繋げます。これはmacOSとLinuxで使えます。

組織の管理設定はどこまで効くか

SSHホスト・Modal・科学用モデルのエンドポイントは、管理コンソールで個別にオン・オフを切り替えられます。既定値は、TeamではSSHオン・Modalオン、EnterpriseではSSHオン・Modalオフです。

組織の状態SSHホストModal
Teamの既定SSHホストオンModalオン
Enterpriseの既定SSHホストオンModalオフ
HIPAA準拠が有効SSHホストオフ(管理者が有効化は可)Modalオフ(管理者が有効化は可)

スイッチをオフにしても、登録済みのホストは消えません。新しいコマンドとファイル転送だけが拒まれます。実行中のジョブは止められ、SSHホストなら結果も回収できます。アプリがclaude.aiに72時間届かないと、SSHホストとModalは一時停止し、再接続で戻ります。Enterpriseでは、SSHホストをカスタムロールの権限で一部の人に絞ることもできます。

境界の線引きに注意が要ります。IPアドレス許可リストが検査するのは、サインインとClaudeへのリクエストなどAnthropic宛ての通信です。手元のコード、SSHホスト、Modalの通信は検査されません。データレジデンシー(米国内のみの推論など)も同じ境界で、Claudeへのリクエストが対象になり、SSHホストやModalで動くコードは含まれません。顧客管理の暗号化キーも、SSHホストやModalに送った作業はAnthropicを通らないため対象外です。

HIPAA準拠を有効にしている組織では、Claude Scienceをオンにはできますが、ビジネスアソシエイト契約(BAA)の対象外で、保護対象の医療情報(PHI)を入れてはならないとされています。この組織では接続系の機能が既定でオフになり、必要なら管理者が個別に有効化します。

Claude Codeの接続方式と何が違うか

Claude CodeのSSH接続は、CLIとしてターミナルの中でそのまま動く前提です。すでにSSHでHPCログインノードに入っているなら、そのシェルでclaudeを起動すれば足り、ポートフォワードも専用トンネルも要りません。ヘッドレスなSSH環境向けの口はあり、claude mcp login <name>は--no-browserを付けると、認可URLを表示してリダイレクトURLの貼り戻しを求めます。v2.1.287のclaude mcp login --helpは、このオプションを「SSH/ヘッドレスセッション向け」と説明しています。ただしこれはClaude Code本体のログインではなく、MCPサーバーを認証するためのコマンドです。

Claude Scienceはデスクトップアプリで、リモートサーバー運用ではそのWeb画面を手元のブラウザへ引き出します。本体をログインノードで動かすなら、画面を手元に転送する経路としてSSHトンネルとポート転送が要るわけです。Linux上のサンドボックス実行に使うパッケージはClaude Codeと共通で、どちらもbubblewrapとsocatでコード実行を隔離します。基盤は共有しても、リモートの計算資源へどう手を伸ばすかという接続層は、GUIかCLIかで分かれます。

どの方式を選ぶか

状況向く方式理由
手元のPCは使いたいが計算だけHPCに投げたい向く方式SSHホスト接続理由アプリと会話履歴は手元に残り、ジョブだけがクラスタに渡る
ラボの共有Linux機から常時使いたい向く方式リモートLinuxサーバー理由データと会話履歴をサーバーに集約でき、複数端末のブラウザから参照できる
ログインノードでsudoもサンドボックスの権限も無い向く方式SSHホスト接続理由bubblewrapもカーネル設定も要らず、組織がSSHホストを許可していれば自分の権限だけで足りる
自前のクラスタに空きがなくGPUが必要向く方式Modal連携理由秒単位課金でオンデマンドにGPUへスケールできる
すでにSSHでログインノードに入って作業している(Claude Code)向く方式ターミナル内でそのまま起動理由追加のトンネル設定なしに今のセッションで完結する

まとめ

ログインノードの管理者に頼めないなら、本体は手元に置いてSSHホストとして足す順で考えると行き詰まりません。SSHホストとModalはIP許可リスト・データレジデンシー・顧客管理キーの外で動くため、導入前に管理コンソールでオンになっているかを確かめておくと手戻りがありません。接続層そのものを持ち込みたくなければ、ログインノードでClaude Codeを使う道もあります。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. claude.com/docs/claude-science/remote-compute-clusters
  2. claude.com/docs/claude-science/run-on-remote-linux-server
  3. claude.com/docs/claude-science/compute-providers
  4. claude.com/docs/claude-science/admin-controls
  5. claude.com/product/claude-science
  6. claude.com/docs/claude-science/command-line-settings
  7. claude.com/docs/claude-science/changelog
この記事を共有:XはてブLinkedIn