Windows Desktop SSH Remote: ccd-cli crashes with exit code 1, credentials file naming mismatch
Environment
- OS: Windows 11 Home 10.0.26200
- Claude Code Desktop: v1.1.7714 (latest)
- Server: Ubuntu 22.04 LTS, Claude CLI v2.1.81 (latest)
- SSH: OpenSSH_10.2p1 (Windows) → OpenSSH_9.6p1 (Ubuntu)
- Plan: Max (mike161078@gmail.com)
Bug Description
SSH remote sessions freeze/hang indefinitely since ~48 hours ago. No server-side changes were made. The feature was working perfectly before.
Root Cause Identified
The ccd-cli binary spawned by the remote server exits immediately with exit code 1, writing exactly 93 bytes to stderr, then the desktop app hangs showing "Wrangling..." or "Synthesizing..." indefinitely.
Key finding: claude login via interactive terminal saves credentials as ~/.claude/.credentials.json (hidden file with leading dot), but ccd-cli appears to look for ~/.claude/credentials.json (without the dot). This causes authentication failure on every spawn.
Manual execution works perfectly — running ccd-cli directly from an SSH terminal with the same initialization payload produces correct responses with exit code 0.
Steps to Reproduce
- Fresh Ubuntu 22.04 server with Claude CLI v2.1.81 installed
- Run
claude loginon server → creates~/.claude/.credentials.json - Connect Claude Code Desktop (Windows) to server via SSH remote
- Session title appears, then freezes on "Wrangling..." / "Synthesizing..."
Server Logs (remote-server.log)
[process.Manager] Process started, PID=49131, command=/root/.claude/remote/ccd-cli
[process.Manager] WriteStdin: wrote 204 bytes (initialize request)
[process.Manager] WriteStdin: wrote 241 bytes (user message)
[process.Manager] Read 93 bytes from stderr
[process.Manager] stderr EOF
[process.Manager] stdout EOF
[process.Manager] Process exited with code 1
This pattern repeats identically on every connection attempt.
Workarounds Attempted (all failed)
- Reinstalled Claude Code Desktop 3x
- Cleared
~/.claude/remote/directory to force fresh binary deployment - Re-authenticated multiple times via
claude loginand/login - Updated Claude CLI on server to latest (2.1.81)
- Verified SSH connectivity (works perfectly from terminal)
- Configured SSH keepalive settings
- Killed stale remote server processes
- Contacted support (confirmed account is fine on their end)
Expected Behavior
Desktop app should successfully spawn ccd-cli and establish a working remote session, as it did 48+ hours ago.
Additional Context
- SSH connection from terminal works flawlessly (key-based auth, ed25519)
claudeinteractive CLI works perfectly on the server- The 93 bytes stderr output strongly suggests an auth/credential lookup failure
- This may be related to a recent update changing the credentials filename convention
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗