Files
claudetools/.claude/standards/ssh/windows-openssh.md
Mike Swanson dd0ef45645 feat: implement agent-os standards system and feature planning tools
- Split CODING_GUIDELINES.md into 19 indexed standards files under .claude/standards/
  - 9 from CODING_GUIDELINES (conventions, powershell, security, api, git, gururmm)
  - 10 from session log tribal knowledge (syncro, ssh, gitea, python, client, gururmm)
- Add .claude/standards/index.yml for cheap relevance-based lookup
- Add /inject-standards command: load targeted standards per task instead of full guidelines
- Add /shape-spec command: pre-implementation spec for GuruRMM features (plan.md,
  shape.md, references.md, standards.md) with mandatory out-of-scope gate
- Add docs/tech-stack.md and docs/mission.md for ClaudeTools API
- Add projects/msp-tools/guru-rmm/docs/tech-stack.md and mission.md for GuruRMM
- Update CLAUDE.md commands table with /inject-standards and /shape-spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 12:59:49 -07:00

2.3 KiB

name, description, applies-to
name description applies-to
windows-openssh Use system OpenSSH (bare `ssh`); never Git for Windows SSH; the backslash hook blocks full Windows paths all

SSH on Windows

Use the system OpenSSH client

The correct SSH binary on Windows is the system-installed OpenSSH at:

C:\Windows\System32\OpenSSH\ssh.exe

Do not use Git for Windows SSH (C:\Program Files\Git\usr\bin\ssh.exe). The system OpenSSH has proper Windows integration, correct key handling, and is the version that works with the Windows OpenSSH registry for key agent.

Use bare ssh, not the full path

The pre-bash-backslash hook at .claude/hooks/pre-bash-backslash.sh blocks any Bash command that contains Windows-style backslash paths (e.g., C:\Windows\System32\OpenSSH\ssh.exe). This hook exists to prevent accidental backslash path usage in Git Bash, which interprets \ as escape sequences.

The system OpenSSH is on PATH in Git Bash, so use the bare command:

# Correct — uses system OpenSSH via PATH
ssh guru@172.16.3.30 "sudo /opt/gururmm/build-server.sh"
ssh -i C:/Users/guru/.ssh/id_ed25519 guru@172.16.3.30 "command"

# Wrong — full backslash path blocked by hook
C:\Windows\System32\OpenSSH\ssh.exe guru@172.16.3.30 "command"

Note: forward-slash paths are fine in Git Bash:

# This works (forward slashes)
"C:/Windows/System32/OpenSSH/ssh.exe" guru@172.16.3.30 "command"
# But bare ssh is simpler and preferred

Key file paths

SSH keys are stored in C:/Users/guru/.ssh/ — use forward slashes when specifying -i:

ssh -i C:/Users/guru/.ssh/id_ed25519 guru@172.16.3.30 "command"

Known servers

Host IP User Auth
Saturn / GuruRMM server 172.16.3.30 guru SSH key (id_ed25519)
Pluto / build server 172.16.3.36 Administrator Password (vault)
Jupiter / Unraid 172.16.3.20 root Password (vault)

For password auth (Pluto), use paramiko in Python when interactive stdin is not available — sshpass is not installed in the Git Bash environment.

PuTTY tools

For servers requiring interactive key acceptance or PuTTY-specific features (IX server):

  • pscp.exe for file transfer
  • plink.exe for commands

Both are in C:/Program Files/PuTTY/ — use forward slashes or quote with double quotes when calling from Git Bash.