スマホからSSHでWindows PCのClaude Codeを操作する方法
はじめに
自宅WindowsのPCでClaude Codeを使って自動売買システムを動かしているが、外出先からスマホで操作したい場面が出てきた。本記事では、Termiusアプリを使ってスマホ→Windows SSH→Claude Code を実現した手順と、ハマりポイントをまとめる。
構成
スマホ(Termius)
↓ SSH
Windows PC(OpenSSH Server)
↓ 起動
Claude Code(CLI)
Step 1: SSH専用ユーザーの作成
セキュリティのため、メインユーザーとは別のSSH専用ユーザーを作る。
PowerShellを管理者として開いて実行:
# ユーザー作成
New-LocalUser -Name "sshuser" -Password (ConvertTo-SecureString "YourPassword" -AsPlainText -Force) -FullName "SSH User"
# Administratorsグループに追加
Add-LocalGroupMember -Group "Administrators" -Member "sshuser"
Step 2: OpenSSH Serverのインストール
Windowsの設定 → アプリ → オプション機能 → 「OpenSSH サーバー」を追加。
またはPowerShellで:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Step 3: Termiusで接続
Termiusアプリに以下を設定:
-
ホスト: PCのローカルIPアドレス(
ipconfigで確認) - ユーザー名: sshuser
- パスワード: 設定したパスワード
接続できれば C:\Users\sshuser> のプロンプトが表示される。
Step 4: フォルダへのアクセス権付与
sshuserはメインユーザーのフォルダにアクセスできないため、権限を付与する。
⚠️ 重要:PowerShellではなく「コマンドプロンプト(管理者)」で実行すること
icacls "C:\Users\puruy\browser-use-project" /grant sshuser:(OI)(CI)F /T
(OI)(CI)F はPowerShellで実行すると「用語として認識されない」エラーになる。cmd.exe で実行する。
成功すると大量の「処理ファイル」ログが流れ、最後に:
11391 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした。
Step 5: プロジェクトフォルダへ移動
ここで1つハマりポイント:
× 失敗
cd C:\Users\puruy\browser-use-project
→「指定されたパスが見つかりません」
○ 解決策:Tabキーで補完する
cd C:\Users\puruy\
までは移動できる。そこから cd brow と入力して Tabキー を押すと、フォルダ名が自動補完される。
これはSSHシェルの文字エンコード問題(ハイフンの扱い)が原因で、直接入力では認識されないことがある。
Step 6: Claude Codeの起動
C:\Users\puruy\.local\bin\claude.exe
claude.exe は複数の場所に見えるが、これはWindowsのAppDataフォルダがシンボリックリンクで循環しているため。実体は同じファイル。
Step 7: グローバル設定を読み込む(重要)
sshuserとして起動すると、USERPROFILE がsshuserを指すため、メインユーザーの設定が読み込まれない:
| 設定 | 状態 |
|---|---|
プロジェクトの CLAUDE.md
|
✅ 読み込まれる |
.claude/settings.local.json(APIキー) |
✅ 読み込まれる |
グローバルメモリ(~/.claude/memory/) |
❌ 読み込まれない |
解決策:環境変数でUESRPROFILEを上書きして起動
set USERPROFILE=C:\Users\puruy && C:\Users\puruy\.local\bin\claude.exe
起動後に /memory と入力して過去のメモリが見えればOK。
まとめ・ハマりポイント一覧
| 問題 | 原因 | 解決策 |
|---|---|---|
pwdが認識されない |
WindowsのcmdはUnixコマンド非対応 |
cd(引数なし)で現在地確認 |
icaclsがPowerShellでエラー |
(OI)(CI)がPowerShellで別解釈される |
cmd.exeで実行 |
| フォルダへのcdが失敗 | 文字エンコード問題(ハイフン等) | Tabキー補完を使う |
| メモリ・設定が引き継がれない | UESRPROFILEがsshuserを指す |
set USERPROFILE=C:\Users\puruyで上書き |
参考
- Termius - iOS/Android向けSSHクライアント
- Claude Code - AnthropicのCLI型AIエージェント
- Windows OpenSSH Server - Windows設定のオプション機能から導入可能