iOSデバイス(iPhone, iPad)からWSL上のClaude Codeにアクセスする方法

こんにちは,shimasan0x00(@shimasan0x00)です.
今回は,Tailscaleを使用することでWindows上のWSL内にインストールされているClaude Codeまで任意のiOSデバイスからアクセスする方法について共有します.
外から家のWindowsにアクセスしたいというケースが今後発生するだろうと思い準備しました.
iOSアプリのSSHクライアント,TerminalツールであるTermius, a-Shellを使用します.
AndroidでもWSL側の準備は同じですし,Android側で利用可能なSSHクライアント,Terminalツールを用意できれば再現可能です.
Claude Code自体については以下の記事にまとめています.
環境
Clade CodeをインストールしているHOSTマシン
- OS
- Windows11 HOME
- 24H2
- Windows11 HOME
- WSL2
- Ubuntu 22.04.5 LTS
- Claude Code
- 1.0.89
リモートアクセスする端末
- iPad Pro
- インストールアプリ
- Tailscale
- a-Shell
- Termius
- インストールアプリ
Tailscaleとは
TailscaleはVPNを容易に構築し,自身の持つデバイス間を安全に接続することができるサービスです.
VPN構築にユーザは煩わしい設定をする必要なく,Windows側ではインストールコマンド,iOSデバイス側ではアプリをインストールするだけでOKと画期的です.

Personal用途ならFREEで使用可能なのも嬉しい.
Sign upしておいてください.

WSLの準備
次にClaude CodeがインストールされているWSL側の準備を実施します.
SSH Serverの設定,Tailscaleのインストールを実施します.
SSH Serverの設定
Ubuntu側を最新状態にアップデートし,SSH Serverをインストールします.
sudo apt update
sudo apt install openssh-server
インストールしたら,設定ファイルを修正します.
修正するエディタはお好みでお願いします.
sudo vi /etc/ssh/sshd_config
設定値
SSHの初期設定確認のため,PasswordAuthenticationを有効化していますが,鍵の疎通もOKになったらPasswordAuthenticationはnoに設定します.
Port 2222
ListenAddress 0.0.0.0
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
MaxAuthTries 3
次に,秘密鍵を生成します.
生成したtermius_rsaの値はiOSデバイスにて使用するため控えておいてください.
ssh-keygen -t rsa -b 4096 -C "termius-remote" -f ~/.ssh/termius_rsa
cat ~/.ssh/termius_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/termius_rsa
では,ここまで準備できたのでSSH Server有効化します.
sudo systemctl enable ssh
sudo systemctl restart ssh
以下のコマンドを実行して,2222 portでSSHを受け付けていればOKです.
Server listening on 0.0.0.0 port 2222.
sudo systemctl status ssh
Tailscaleの準備
Tailscaleの準備はとても簡単で以下のコマンドを実行してインストールするだけです.
curl -fsSL https://tailscale.com/install.sh | sh
インストールが終わったら以下のコマンドで起動し,自分のアカウントと紐づけましょう.
sudo tailscale up
TailscaleのWebサイトでもわかりますが,接続するデバイスのIPアドレスは以下のtailscale statusコマンドでもわかります.
tailscale status
XXX.XXX.XXX.XXX device-1 user linux -
YYY.YYY.YYY.YYY ipad-pro-11-gen-1 user iOS idle, tx 284400 rx 89960
# Health check:
# - Linux DNS config not ideal. /etc/resolv.conf overwritten. See https://tailscale.com/s/dns-fight
WSLに接続するデバイスの準備
iOSデバイスで以下の3つのアプリをインストールしましょう.
a-ShellはiOSデバイス上でshellを実行できるアプリです.今回はSSHコマンドでの接続ができるか確認します.
TermiusはSSH接続アプリです.見やすいGUIと設定項目で必要なデバイスにSSH接続できます.
- Tailscale
- a-Shell
- Termius

接続確認でa-Shellを用いたSSHコマンドの実行を行いますが,いきなりTermiusで鍵を用いたSSH接続でも全然問題ないです.
Tailscale
まずはTailscaleのアプリをインストールし,作成したアカウントにログインします.
画面上のConnectedを有効化し,VPN接続をします.

a-Shell
a-ShellではWindowsとの疎通確認を行います.
a-Shellを立ち上げると,すぐshellコマンドが実行できる画面が出てきます.
以下のsshコマンドを打って,パスワードでの疎通ができるか確認します.
{USER_NAME}はWSLで設定した自身の名前です.このあとパスワードを聞かれますが,同様にWSLで設定した値を入力してください.
ssh {USER_NAME}@{Tailscaleで確認したWindowsのIP} -p 2222
疎通ができたら「SSH Serverの設定」で設定したパスワードでのアクセスを無効化しておきましょう.
sshの再起動を忘れずに.
PasswordAuthentication no
Termius
TermiusでSSH設定を行い,いつでも容易にWindowsへ接続できるようにしていきます.
ここを設定できればClaude Code実行できます.
まず,+からNew Hostを選択します.

以下の設定項目を埋めていきます.
- IP or Hostname
- 「Tailscaleの準備」で確認したWindowsに付与されているIP
- MagicDNSが有効化されているならデバイス名でもOK
- Use SSH
- 有効化
- Port
- 2222
- Username
- WSLのユーザ名
- Password
- 不要
- Key
- Paste keyを選択
- Private Keyに「SSH Serverの設定」で確認したkeyの値を入力
- Public Keyは不要
- Passphraseは鍵生成時に設定した人は入力


設定を保存したら,Hostに自分が追加したマシンが出てくるのでタップしたら繋がります!

楽しいClaude Code生活を!
なお,SSH接続したTerminalで直接claudeコマンドを用いてClaudeCodeを起動すると,SSH接続終了でClaudeCodeの処理が中断されてしまいます.
tmuxなどターミナルマルチプレクサを使用しましょう.