Files
claudetools/.claude/standards/ssh/windows-openssh.md
Mike Swanson e3a56bcb21 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-21 17:00:27
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-21 17:00:27
2026-05-21 17:00:30 -07:00

2.1 KiB

name, description, applies-to
name description applies-to
windows-openssh Use system OpenSSH (bare `ssh`); never Git for Windows SSH; use forward slashes for all Windows paths in Git Bash 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 system OpenSSH is on PATH in Git Bash, so prefer the bare command. Always use forward slashes for any Windows path you do pass explicitly — Git Bash interprets backslashes as escape sequences.

# 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"

# Also correct — forward slashes in full path
"C:/Windows/System32/OpenSSH/ssh.exe" guru@172.16.3.30 "command"

# Wrong — backslash path breaks in Git Bash
C:\Windows\System32\OpenSSH\ssh.exe guru@172.16.3.30 "command"

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.