この記事でできること
外出先から Androidスマホで自宅/作業用の Windows PC にSSH接続し、WSL2(Ubuntu)上でClaude Code を実行できるようにします。
スマホから開発する手段としては、最近 Claude Code on the web も登場しました。ただ、利用者が多いからなのか、まだリサーチプレビュー(ベータ)段階だからなのか、動作がやや重く感じることがあります。
一方で、本記事の環境を構築すれば、スマホからでも ほぼ遅延を感じずに Claude で開発できるようになります。現時点で「スマホで快適に開発したい」場合おすすめですので、お時間がございましたらお試しいただければ、と思います。
構成は以下の通りです:
[Android] → [Termius] → [Tailscale] → [Windows(OpenSSH)] → [WSL2(Ubuntu)] → [Claude Code]
所要時間の目安:初回セットアップ 約2〜3時間
セットアップ完了後は、スマホから 1タップでSSH接続できるようになります。
参考にした記事
※下記「iPhoneからMacへ接続してClaude Codeを実行する」内容の記事を参考にしました。
本記事はその内容をベースに、「AndroidからWindows PCへ接続してWSL2(Ubuntu)上でClaude Codeを実行する」手順を紹介しています。
前提
- Windows 10/11
- WSL2 を使える状態(最終的にUbuntuを入れる)
- Android に Termius を入れられる
- Tailscale アカウントで Windows と Android がログインできる
💡 本記事のWSL操作は、スマホ(TermiusでSSH接続した先)で実行しても、PC上で実行してもOKです。
どちらで操作しても、最終的にWindows→WSL2(Ubuntu)上でClaude Codeが動けば目的は達成できます。
手順
1. Windows:Tailscaleを入れてログインする
- WindowsにTailscaleをインストール
下記から「Download Tailscale for Windows」をクリックしてダウンロードし、インストールしてください。
https://tailscale.com/download - ログイン(Google/Microsoft/GitHub等)
- Tailscale IP(100.x.x.x) を控える
tailscale ip -4
(重要)ここから先は「管理者PowerShell」で実行します
以降の手順では、OpenSSH Server の追加やサービス設定、権限(ACL)の変更を行います。
これらは 管理者権限 が必要になるため、以下の手順で 管理者としてPowerShell(またはWindows Terminal) を開いてください。
-
Winキーを押して検索を開く - 「PowerShell」または「Terminal」と入力
- 表示されたアプリを右クリック → 「管理者として実行」
- ユーザーアカウント制御(UAC)が出たら 「はい」
2.Windows:OpenSSH Server(SSHの受け口)を有効化する
管理者PowerShellで:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-Service sshd
💡
Add-WindowsCapabilityは環境によって数十秒〜数分かかることがあります。
実行中は待つだけなので、別のターミナル(管理者)を開いて並行作業してOKです。
3. Windows:WSL2 と Ubuntu を準備する(未導入の場合のみ)
💡 WSL2/Ubuntu の導入は 最初に一度だけPC側で実施しておくのがおすすめです。
(導入後の操作は、スマホ(SSH経由)でもPCでもどちらでもOK)
管理者PowerShellで:
wsl --install
特定のUbuntuを入れたい場合(例:24.04):
wsl --install -d Ubuntu-24.04
4. Android:Tailscaleを入れて同じアカウントでログイン
- PlayストアでTailscaleをインストール
- Windowsと同じアカウントでログイン
- 必要なときだけONでもOK(バッテリー節約)
5. Android:TermiusでSSH鍵(ED25519)を作る
Termius内で作成:
- Keychain / Vault / Keys など → Generate key
- Type: ED25519
- Public key(ssh-ed25519 ...)をコピーしておく
【公式】SSH Key 生成手順の紹介(Desktop / iOS / Android 説明あり):
https://termius.com/documentation/generate-ssh-key
6. Windows:公開鍵(authorized_keys)の保存場所を決める
PowerShellで:
net localgroup administrators
この一覧に 自分のユーザー が入っている場合、次の「Aパターン」になる可能性が高いです。
Aパターン:ユーザーがAdministrators所属のとき(鍵の保存先が違う)
管理者グループ所属の場合、OpenSSHが 一般的な ~\.ssh\authorized_keys を見ず
C:\ProgramData\ssh\administrators_authorized_keys を参照する構成になっていることがあります。
A-1. .txt事故を防いで編集(重要)
⚠️
administrators_authorized_keysは 拡張子なし のファイル名である必要があります。
Notepadで保存するときにadministrators_authorized_keys.txtになってしまうと、OpenSSH が参照しないため
鍵認証が失敗します(例:Permission denied (publickey))。
手順(おすすめ:先に空ファイルを作ってからNotepadで開く)
-
まず、拡張子なしのファイルを PowerShellで先に作成します:
New-Item -ItemType File -Force "C:\ProgramData\ssh\administrators_authorized_keys" -
作成したファイルを そのままNotepadで開く(この方法だと .txt が付く事故が起きにくい)
notepad "C:\ProgramData\ssh\administrators_authorized_keys" -
Termiusでコピーした Public key(ssh-ed25519 ... で始まる1行) を貼り付けて保存します
- 1行=1鍵(改行が増えすぎないように注意)
ちゃんとできたか確認(ファイル名が完全一致しているか)
dir "C:\ProgramData\ssh" -Force | findstr administrators_authorized_keysもし .txt を作ってしまった場合(リネームで復旧)
Rename-Item "C:\ProgramData\ssh\administrators_authorized_keys.txt" "C:\ProgramData\ssh\administrators_authorized_keys" - 1行=1鍵(改行が増えすぎないように注意)
A-2. ACL(権限)を設定(icaclsは1行推奨)
改行(バッククォート)や /grant の書き方で事故るので 1行で実行:
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "NT AUTHORITY\SYSTEM:F" "BUILTIN\Administrators:F"
確認:
icacls "C:\ProgramData\ssh\administrators_authorized_keys"
A-3. sshd再起動
Restart-Service sshd
Bパターン:ユーザーがAdministratorsではないとき(一般的な保存先)
この場合は普通にここ:
C:\Users\<ユーザー>\.ssh\authorized_keys
作成と権限:
mkdir "C:\Users\user\.ssh" -Force | Out-Null
notepad "C:\Users\user\.ssh\authorized_keys"
icacls "C:\Users\user\.ssh" /inheritance:r /grant "user:F" "SYSTEM:F" "Administrators:F"
icacls "C:\Users\user\.ssh\authorized_keys" /inheritance:r /grant "user:F" "SYSTEM:F" "Administrators:F"
Restart-Service sshd
※ user は自分のWindowsユーザー名に置き換える
7. Android(Termius):Hostを作ってSSH接続する
Host設定(例):
- Host: WindowsのTailscale IP(例:100.x.x.x)
- Port: 22
- Username: Windowsユーザー名(例:user)
Termiusに入力するユーザー名の確認
PowerShellで:
whoami
例:DESKTOP-XXXXXXX\user と出た場合、ユーザー名は user です(\ の右側)。
初回接続時に
The authenticity of host ... can't be established
が出たら、初回ならContinueでOK(known_hostsに登録される)。
参考(英語・スマホ画面による説明あり。必要に応じてブラウザ翻訳でご確認ください):
https://davidlim2007.wordpress.com/2022/08/28/explore-secured-shell-ssh-part-5-working-with-android/
💡 Termiusの文字サイズや見た目は、アプリの Settings → Font & colours で変更可能です。
8. SSH接続後:WSL2(Ubuntu)へ入る
SSHでWindowsに入った状態で:
wsl
9. Ubuntu:Claude Code をインストールして起動する
ここからは WSL(Ubuntu) 側で実行します(WindowsのPowerShellではありません)。
-
事前準備(
curlが無ければ入れる)sudo apt update sudo apt install -y curl -
Claude Code をインストール
curl -fsSL https://claude.ai/install.sh | bash -
インストール確認
which claude claude --version -
claude: command not foundの場合(PATHが読まれていない対処)
Claude Code は~/.local/bin/claudeに入る想定なので、~/.local/binを PATH に追加します。echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.profile source ~/.bashrc hash -r which claude claude --version -
起動
claude
10. 仕様駆動(cc-sdd / Spec Kit)もスマホから回せる
Claude Codeが動けば、同じターミナルからcc-sddやSpec Kitを呼び出して
仕様駆動の流れも作れます(詳細は各ツールのネット情報をご参照ください)。
詰まりポイント集
1. WindowsはPINでログインできるのに、Termius(SSH)でログインできない / パスワードを忘れた
症状
- WindowsではPINでサインインできている
- Termius から SSH 接続しようとしても、PINを入れても通らない
- いざ「パスワードで試そう」と思ったら、Windowsアカウントのパスワードを忘れてしまって詰まる
原因
Windowsの PIN は端末ローカル用の認証であり、SSHの「Password認証」で求められる Windowsアカウントのパスワードとは別物です。
そのため、PINを入力してもSSHには通りません。
対処(ローカルアカウントの場合)
パスワードを忘れてしまった場合は、Windows側でパスワードを再設定して復旧できます。
管理者として起動した PowerShell / コマンドプロンプトで、以下を実行します:
net user <ユーザー名> *
2.WSLは“Windowsユーザー単位”で見え方が変わることがある
別ユーザーでSSHログインすると、wsl で
- “ディストリがありません”
となる場合があります。
→ Windowsの普段使いユーザーでSSHする 方針とすると詰まりが減り、良いと思います。
まとめ
- 自宅にインターネット接続されたPC(起動中)があれば、外出先からでもスマホでSSH接続して開発環境に接続可能です。
- 最初だけセットアップに手間はかかりますが、設定が終われば以後はスマホからほぼ1タップでSSH接続して開発できます。
補足
なぜTailscaleを挟むのか
SSHをそのままインターネットに公開(ポート開放)すると、スキャンや総当たりの対象になりやすいです。
Tailscaleを挟むと、自分のTailnet(同一アカウント配下の端末同士) で安全に接続できます。
外部に攻撃されない自分専用の通り道を作るためのツール、という感じです。
なぜWSL2(Ubuntu)を挟むのか
Windowsでも利用できますが、公式ドキュメント上「Windowsは WSL(WSL1/WSL2)または Git for Windows を使用」という形で案内されているためです。
Claude Code は Windows PowerShell でのインストール方法も用意されています。
ただし、周辺ツール(cc-sdd / Spec Kit など)やシェル操作を含めて「Linux前提」の手順が混ざる場合があるので、
本記事のようにWSL2(Ubuntu)に寄せた方が再現性が高いという位置づけです。