アクセス解析は同意後だけ使います。詳細

入れる・困ったとき

Claude CodeをLinux・Ubuntuに入れる手順とSSHでのログイン

要点この記事の答え
  1. Ubuntu・Debian・WSLは公式のcurlコマンド1行で入り、Node.jsは要りません。
  2. apt・dnf・apkの公式リポジトリもあり、その場合は自分で更新します。
  3. SSH先のサーバーでは、手元のブラウザでログインしてコードを端末に貼ります。

Ubuntu・Debianはこの1行

コマンド
curl -fsSL https://claude.ai/install.sh | bash

入ったら新しいターミナルでclaude --versionを実行します。

Ubuntu のサーバーには curl の 1 行で入り、SSH 先では端末に出たログインの URL を手元のブラウザで開き、ブラウザに出たコードを SSH で戻して端末に貼るとログインできると示す設計図。

Claude Code は Ubuntu や Debian なら、ターミナルにコマンドを 1 行貼れば入ります。Node.js を先に入れる必要はありません。

コマンド
curl -fsSL https://claude.ai/install.sh | bash

入ったら新しいターミナルを開き、claude --version でバージョン番号が出るか確かめます。作業するフォルダで claude と打てば始まり、最初の 1 回だけブラウザでログインします。

  • apt・dnf・apk で管理したいなら Anthropic の署名付きリポジトリから入れられます(自動では更新されません)
  • Alpine Linux は先に bash、curl、libgcc、libstdc++、ripgrep を入れます
  • SSH 先のサーバーでは、手元のブラウザでログインし、表示されたコードを端末に貼ります
  • sandbox を使うときは bubblewrap と socat を入れます
  • Windows の WSL2 でも同じコマンドで入ります

動作環境、コマンド、エラーの直し方は、2026年10月26日に公式のセットアップ手順、インストールとログインのトラブル対応、認証、sandbox、Linux版デスクトップアプリの頁と照らし合わせました。

Mac と Windows を含めたインストール全体の手順はClaude Codeのインストール方法の記事にあります。この記事は Linux に絞って、ディストリビューションごとの入れ方、サーバーでのログイン、Linux で起きやすいつまずきを扱います。

Linuxの動作環境

公式のシステム要件のうち、Linux に関わるものは次のとおりです。

項目要件
項目ディストリビューション要件Ubuntu 20.04以降、Debian 10以降、Alpine Linux 3.19以降
項目メモリ要件4GB以上
項目CPU要件x64またはARM64
項目シェル要件BashまたはZsh
項目ネットワーク要件インターネット接続

検索に使う ripgrep は、ふつうは Claude Code に同梱されています。インストールの途中には、およそ 512MB の空きメモリが要ります。

Fedora と RHEL は要件の一覧に名前がありませんが、公式は dnf のリポジトリを Fedora・RHEL 向けとして公開しています。Arch Linux 向けの手順やパッケージは、公式の頁にはありません。公式のデスクトップアプリの頁は、Fedora や Arch のような Debian 系でないディストリビューションでは CLI を使うよう案内しています。

入れ方の選び方

Linux で公式が案内している入れ方は次の 5 つです。迷ったらネイティブインストーラーを使います。

入れ方向いている環境更新
入れ方ネイティブインストーラー(推奨)向いている環境ほとんどの環境更新自動
入れ方apt向いている環境Ubuntu・Debian更新手動
入れ方dnf向いている環境Fedora・RHEL更新手動
入れ方apk向いている環境Alpine Linux更新手動
入れ方npm向いている環境Node.jsで管理したい更新手動

apt・dnf・apk のリポジトリは、パッケージをまとめて管理しているサーバーや、/home がネットワークの上にあって各マシンのローカルディスクへ入れたい環境に向いています。どの入れ方でも中身は同じ Claude Code です。2 つ以上の入れ方を混ぜると、どちらの claude が動いているか分からなくなるので、1 つに決めます。

ネイティブインストーラーで入れる

Ubuntu、Debian、WSL では、次の 1 行で入ります。

コマンド
curl -fsSL https://claude.ai/install.sh | bash

ダウンロード中は進み具合が表示されません。終わるまで待ちます。入る場所は自分のホームフォルダの下で、起動用の ~/.local/bin/claude から、本体を置く ~/.local/share/claude/versions/ へリンクが張られます。

新しいバージョンが出るとすぐ届く latest が既定です。大きな不具合のある版を飛ばし、およそ 1 週間遅れで届く stable を選ぶなら、次のように入れます。

コマンド
curl -fsSL https://claude.ai/install.sh | bash -s stable

決まったバージョンを入れるときは、番号を渡します。

コマンド
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89

入ったか確かめる

新しいターミナルを開いて、次の 2 つを実行します。

コマンド
claude --version
claude doctor

2.1.211 (Claude Code) のようにバージョン番号が出れば入っています。claude doctor はセッションを始めずに、インストールの状態、設定ファイルの誤り、更新の結果を読み取って表示します。bash: claude: command not found と出たら、PATHを通すの手順に進みます。

aptで入れる(Ubuntu・Debian)

apt では、Anthropic のリポジトリを登録してから入れます。下の手順は stable のリポジトリを使います。

署名鍵の取得に curl と gpg を使います。入っていない場合は先に入れます。

コマンド
sudo apt install curl gnupg

署名鍵をダウンロードします。

コマンド
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
  -o /etc/apt/keyrings/claude-code.asc

鍵が Anthropic のものか確かめます。

コマンド
gpg --show-keys /etc/apt/keyrings/claude-code.asc

表示されるフィンガープリントが次と同じなら正しい鍵です。

テキスト
31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE

リポジトリを登録して入れます。

コマンド
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code

鍵の取得に失敗していると、apt update が NO_PUBKEY BAA929FF1A7ECACE で止まります。downloads.claude.ai に届くか確かめて、鍵のダウンロードからやり直します。

latest を使うときは、URL の stable と、その後ろの stable の 2 か所を latest に変えた行を登録します。

コマンド
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list

dnfで入れる(Fedora・RHEL)

dnf では、リポジトリの設定ファイルを作ってから入れます。下の手順は stable を使います。

コマンド
sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
[claude-code]
name=Claude Code
baseurl=https://downloads.claude.ai/claude-code/rpm/stable
enabled=1
gpgcheck=1
gpgkey=https://downloads.claude.ai/keys/claude-code.asc
EOF
sudo dnf install claude-code

初めて入れるとき、dnf が鍵のフィンガープリントの確認を求めます。次と同じなら受け入れます。

テキスト
31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE

latest を使うときは、baseurl を https://downloads.claude.ai/claude-code/rpm/latest に変えます。

Alpine Linuxで入れる

Alpine など musl を使うディストリビューションでは、ネイティブインストーラーの前に必要なパッケージを入れます。Alpine には bash も curl も最初は入っていないので、そのままインストーラーを実行すると not found で止まります。

コマンド
apk add bash curl libgcc libstdc++ ripgrep

ripgrep は community リポジトリにあります。見つからないと言われたら、自分の Alpine のバージョンに合わせて community リポジトリを足し、apk update してから apk add をやり直します。

コマンド
echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories

入れたら、settings.json で同梱の ripgrep ではなく、いま入れた ripgrep を使うよう設定します。

設定
{
  "env": {
    "USE_BUILTIN_RIPGREP": "0"
  }
}

apk のリポジトリから入れることもできます。下の手順は stable を使います。

コマンド
wget -O /etc/apk/keys/claude-code.rsa.pub \
  https://downloads.claude.ai/keys/claude-code.rsa.pub
echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
apk add claude-code

鍵は sha256sum /etc/apk/keys/claude-code.rsa.pub で確かめます。公式の頁に載っている値と同じなら正しい鍵です。

npmで入れる場合

npm でも入れられます。公式が求めるのは Node.js 22 以降です。

コマンド
npm install -g @anthropic-ai/claude-code

npm 版も、中身はネイティブインストーラーと同じ実行ファイルです。Linux では linux-x64、linux-arm64、linux-x64-musl、linux-arm64-musl に対応しています。更新は npm update -g ではなく、次のコマンドで最新版を指定します。

コマンド
npm install -g @anthropic-ai/claude-code@latest

権限の問題やセキュリティのリスクにつながるため、公式は sudo npm install -g を使わないよう案内しています。

PATHを通す(command not foundのとき)

インストールは終わったのに bash: claude: command not found と出るときは、~/.local/bin が PATH に入っていません。インストーラーもこのとき Native installation exists but ~/.local/bin is not in your PATH. と表示します。

まず、本体があるか確かめます。

コマンド
ls -la ~/.local/bin/claude

ファイルがあれば、PATH に入っているか確かめます。

コマンド
echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

何も出なければ、Bash なら ~/.bashrc に足して読み込み直します。

コマンド
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Zsh を使っているなら、~/.bashrc を ~/.zshrc に置き換えます。bash: /home/you/.bashrc: Permission denied と出たら、そのファイルに書き込む権限がありません。ls -l ~/.bashrc で持ち主を見て、別のユーザー(root など)なら sudo chown $(whoami) ~/.bashrc、自分なら chmod u+w ~/.bashrc で直してから、もう一度足します。

SSH先やブラウザのないサーバーでログインする

Claude Code を使うには、Pro、Max、Team、Enterprise のいずれかのプランか、Console のアカウントが要ります。無料の Claude.ai のプランには Claude Code が含まれません。

claude を初めて起動すると、ログインのためにブラウザを開こうとします。SSH でつないだサーバーやコンテナでは、ブラウザが開かないか、別のマシンで開きます。その場合は次の順に進めます。

  1. ログインの画面で c を押し、ログイン用の URL をコピーする
  2. 手元のパソコンのブラウザでその URL を開き、ログインする
  3. ブラウザに表示されたコードを、端末の Paste code here if prompted に貼る
  4. Login successful と出たら Enter を押す

コードを貼っても反応しないときは、端末の貼り付けが入力欄に届いていません。次のコマンドなら、貼ったコードを標準入力から読みます。

コマンド
claude auth login

ログインの情報は、Linux では ~/.claude/.credentials.json に、持ち主だけが読める権限(0600)で保存されます。ログインし直すときは、Claude Code の中で /logout を実行してから claude を起動し直します。

CI やスクリプトのように、ブラウザでのログインができない場所では、claude setup-token で 1 年間有効なトークンを作れます。トークンは画面に出るだけで保存されないので、使う場所で環境変数に入れます。

コマンド
claude setup-token
export CLAUDE_CODE_OAUTH_TOKEN=your-token

このトークンは Pro、Max、Team、Enterprise のプランで使え、できるのはモデルへのリクエストだけです。API の従量課金で使うなら、Console で作った API キーを環境変数 ANTHROPIC_API_KEY に入れる方法もあります。両方があるとき、どちらが使われているかは Claude Code の中の /status で確かめます。

ログインで困ったときの症状別の直し方は、次の記事にまとめています。

関連記事入れる・困ったときClaude Codeにログインできないときの直し方|症状別の原因と/login・/statusの使い方Claude Codeのログイン方法と、ログインできないときの直し方を症状別に解説。/login・/logout・/statusの使い分け、APIキーが優先される問題、WSL2・SSHでのログインまで。

sandboxを使う(bubblewrapとsocat)

Claude Code の sandbox は、Claude が実行するコマンドから見えるファイルと通信先を絞る仕組みです。Linux と WSL2 では、次の 2 つのパッケージを使います。

  • bubblewrap はファイルの隔離に使う
  • socat は通信を sandbox のプロキシへ流すのに使う

Ubuntu・Debian では次のコマンドで入れます。

コマンド
sudo apt-get install bubblewrap socat

Fedora では次のとおりです。

コマンド
sudo dnf install bubblewrap socat

入れたら Claude Code を起動し直し、/sandbox を実行します。足りないものがあれば、/sandbox の Dependencies タブに表示されます。全部のプロジェクトで使うなら、~/.claude/settings.json で sandbox.enabled を true にします。

Ubuntu 24.04 以降では、既定の AppArmor の設定が bubblewrap の動きを止めます。次のコマンドで確かめます。

コマンド
sysctl kernel.apparmor_restrict_unprivileged_userns

0 が出るか、No such file or directory と出るなら何もしなくて構いません。1 が出たら、bubblewrap 用のプロファイルを作って AppArmor を読み込み直します。

コマンド
sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'
abi <abi/4.0>,
include <tunables/global>

profile bwrap /usr/bin/bwrap flags=(unconfined) {
  userns,
  include if exists <local/bwrap>
}
EOF
sudo systemctl reload apparmor

このプロファイルが効くのは bwrap そのものだけで、sandbox の中で動くコマンドには効きません。必要なパッケージが足りないとき、Claude Code は既定では sandbox なしでコマンドを実行します。sandbox を使えないなら起動を止めたい場合は、sandbox.failIfUnavailable を true にします。

更新する

ネイティブインストーラーで入れた Claude Code は、起動時と使っている間に新しい版を確かめ、裏で更新します。更新が効くのは次に起動したときです。すぐに更新したいときは次のコマンドを実行します。

コマンド
claude update

apt・dnf・apk で入れた場合は、Claude Code が自分で更新しません。管理者の権限が要るので、次のコマンドを自分で実行します。

入れ方更新のコマンド
入れ方apt更新のコマンドsudo apt update && sudo apt upgrade claude-code
入れ方dnf更新のコマンドsudo dnf upgrade claude-code
入れ方apk更新のコマンドapk update && apk upgrade claude-code

公式の頁には、パッケージマネージャーに新しい版が届く前に Claude Code が更新を知らせることがある、と書かれています。更新に失敗したら、しばらく待ってからやり直します。更新の止め方やバージョンの確かめ方は、次の記事で説明しています。

関連記事入れる・困ったときClaude Codeのアップデート方法|バージョンの確かめ方と、入れ方ごとの更新・戻し方Claude Codeのバージョンの確かめ方と、入れ方ごとのアップデート方法を解説。自動更新のしくみ、latestとstableの選び方、前の版に戻す方法、リリースノートの読み方まで。

アンインストールする

入れ方ごとに消し方が違います。ネイティブインストーラーで入れた場合は、次の 2 行です。

コマンド
rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude

apt の場合は、パッケージとリポジトリの設定を消します。

コマンド
sudo apt remove claude-code
sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc

dnf の場合は次のとおりです。

コマンド
sudo dnf remove claude-code
sudo rm /etc/yum.repos.d/claude-code.repo

apk の場合は次のとおりです。

コマンド
apk del claude-code
sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories
rm /etc/apk/keys/claude-code.rsa.pub

npm の場合は npm uninstall -g @anthropic-ai/claude-code です。設定や会話の履歴まで消すときは ~/.claude と ~/.claude.json も消します。消すと設定、許可したツール、MCP サーバーの設定、セッションの履歴がなくなります。手順の続きは次の記事にあります。

関連記事入れる・困ったときClaude Codeのアンインストール方法|入れ方・OS別のコマンドと設定・履歴の消し方Claude Codeのアンインストール方法を入れ方とOS別に解説。設定や会話の履歴が残る場所と消し方、VS Code拡張とデスクトップアプリ、消す前にサインアウトする理由まで。

デスクトップアプリのLinux版(ベータ)

ターミナルではなく画面で操作したい場合は、Claude のデスクトップアプリにも Linux 版があります。2026年10月26日の時点ではベータです。

項目内容
項目対応内容Ubuntu 22.04以降、Debian 12以降
項目CPU内容x86_64またはarm64
項目入れ方内容Anthropicのaptリポジトリ
項目更新内容システムのパッケージ更新で届く

Fedora や RHEL、Arch のような Debian 系でないディストリビューションには、まだ対応していません。Ubuntu 20.04 は、パッケージが求める libc6 より古いので入りません。こうした環境では、この記事の CLI を使います。Linux 版ではまだ使えない機能として、Computer Use と音声入力が挙がっています。入れ方の手順は公式のLinux版の頁にあり、デスクトップアプリでの使い方は次の記事で説明しています。

関連記事入れる・困ったときClaude Code Desktopの入れ方|Mac・Windowsのダウンロードから最初の依頼までClaude Codeのデスクトップアプリは、公式サイトからダウンロードして入れるだけで使えます。Mac・Windowsでの入れ方、Codeタブの開き方、最初の依頼、権限のモード、ターミナルのCLIとの違いを比較表で解説します。

WindowsのWSL2で使う場合

Windows の WSL2 では、WSL のターミナルを開いて、この記事と同じ curl -fsSL https://claude.ai/install.sh | bash で入れます。起動も WSL の中で行います。WSL1 では sandbox が使えず、cannot execute binary file: Exec format error で動かないことがあります。PowerShell で wsl --set-version <DistroName> 2 を実行して WSL2 に変えるのが、公式の案内するいちばん簡単な直し方です。

Windows のネイティブと WSL2 の選び方は、次の記事にまとめています。

関連記事入れる・困ったときClaude CodeをWindowsで使う|インストールのコマンド、使い方、WSL2とエラーの直し方Claude CodeをWindowsで使う方法。PowerShell・コマンドプロンプト・WinGetでの入れ方、起動とログイン、Git for Windowsの要否、ネイティブとWSL2の選び方、公式のエラーの直し方をまとめました。

Linuxでよくあるエラー

インストール中にKilledと出る

メモリの少ない VPS やクラウドのサーバーで多い症状です。メモリが足りなくなり、Linux がインストールの処理を止めています。インストーラーは Installation was killed before it could finish (exit code 137) と表示して終わります。

インストールには、およそ 512MB の空きメモリが要ります。ほかのプロセスを止めるか、次のように 2GB のスワップを作ってから入れ直します。

コマンド
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
curl -fsSL https://claude.ai/install.sh | bash

使うときにはもっとメモリが要ります。公式の要件は 4GB 以上なので、できるなら大きいサーバーに変えます。

Dockerの中でインストールが止まる

コンテナの中で root のまま / からインストーラーを実行すると、ファイル全体を調べてメモリを使いすぎ、止まることがあります。Dockerfile で作業フォルダを決めてから実行します。

テキスト
WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash

Docker Desktop を使っているなら、Settings の Resources でメモリの上限を上げる方法もあります。

Error loading shared libraryと出る

libstdc++.so.6 や libgcc_s.so.1 が見つからないと出るときは、自分のシステムに合わない実行ファイルが入っています。glibc のシステムに musl のクロスコンパイル用のパッケージがあると、インストーラーが musl と取り違えることがあります。まず、どちらを使っているか確かめます。

コマンド
ldd --version 2>&1 | head -1

GNU libc か GLIBC と出れば glibc です。glibc なのに musl 版が入っていたら、消して入れ直します。musl と出たら、Alpine の手順と同じく apk add libgcc libstdc++ ripgrep で足りないパッケージを入れます。

Illegal instructionと出る

CPU が実行ファイルの命令に対応していません。まず uname -m で、ARM のサーバーに x86 版が入っているような取り違えがないか確かめます。取り違えがなければ、CPU が AVX に対応していない可能性があります。VPS や仮想マシンでは、次のコマンドで何も出なければ AVX が使えません。

コマンド
grep -m1 -ow avx /proc/cpuinfo

おおむね 2013 年より前の CPU や、AVX を仮想マシンに渡さない環境で起きます。npm など別の入れ方でも同じ実行ファイルが入るので、入れ方を変えても直りません。

syntax errorや403が出る

syntax error near unexpected token '<' や curl: (22) The requested URL returned error: 403 は、インストール用の URL からスクリプトではなく Web 頁やエラーが返ってきています。社内のプロキシや通信の制限が多い原因です。まず、配布元に届くか確かめます。

コマンド
curl -sI https://downloads.claude.ai/claude-code-releases/latest

1 行目の状態の数字が 200 なら届いています。Linux では多くの場合 HTTP/2 200 と出ますが、HTTP/1.1 でつながると HTTP/1.1 200 のように出ます。プロキシを通す必要がある環境では、プロキシの住所を入れてからインストーラーを実行します。

コマンド
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
curl -fsSL https://claude.ai/install.sh | bash

使っている途中にBus errorで落ちる

/home が NFS のようなネットワークの上にあり、複数のマシンで同じフォルダを使っていると起きることがあります。使っている途中に、別のマシンの更新で実行ファイルが消されると、セッションが Bus error で落ちます。公式は、パッケージマネージャーなどで各マシンのローカルディスクに入れ、Claude Code 自身の更新は DISABLE_UPDATES で止める方法を案内しています。

ここに挙げていない症状は、原因の切り分け方をまとめた次の記事で探せます。

関連記事入れる・困ったときClaude Codeのログイン・更新の直し方|ログインできない・command not found・エラー別の対処Claude Codeのログイン・認証が終わらない、command not foundになる、アップデートやバージョンの確かめ方、動作が遅い、API Errorが出るときの直し方を症状別にまとめます。

よくある質問

Claude CodeはUbuntu 20.04でも使えますか?

CLI は使えます。公式の要件は Ubuntu 20.04 以降です。デスクトップアプリの Linux 版は Ubuntu 22.04 以降なので、20.04 では入りません。

LinuxでClaude Codeを入れるのにNode.jsは要りますか?

要りません。ネイティブインストーラーと apt・dnf・apk のリポジトリは、Node.js なしで入ります。Node.js が要るのは npm で入れる場合だけで、Node.js 22 以降を使います。

Arch LinuxでもClaude Codeを使えますか?

公式の頁に Arch Linux 向けの手順やパッケージはありません。公式は Debian 系でないディストリビューションでは CLI を使うよう案内していて、CLI の要件は x64 か ARM64 の CPU と 4GB 以上のメモリです。

ブラウザのないサーバーでもログインできますか?

できます。ログインの画面で c を押して URL をコピーし、手元のブラウザで開いてログインします。ブラウザに出たコードを端末に貼れば終わります。CI のような場所では、claude setup-token で作ったトークンを CLAUDE_CODE_OAUTH_TOKEN に入れて使えます。

aptで入れた場合は自動で更新されますか?

自動では更新されません。sudo apt update && sudo apt upgrade claude-code を自分で実行します。dnf と apk も同じで、自動で更新されるのはネイティブインストーラーで入れた場合です。

まとめ

  • Ubuntu・Debian・WSL は curl -fsSL https://claude.ai/install.sh | bash の 1 行で入り、Node.js は要らない
  • apt・dnf・apk の公式リポジトリもあり、こちらは自分で更新する
  • Alpine は先に bash、curl、libgcc、libstdc++、ripgrep を入れる
  • command not found は ~/.local/bin を PATH に足せば直る
  • SSH 先では、手元のブラウザでログインしてコードを端末に貼る
  • sandbox は bubblewrap と socat を入れて /sandbox で確かめる