Author: Mike Swanson Machine: DESKTOP-0O8A1RL Timestamp: 2026-05-21 17:00:27
59 lines
2.1 KiB
Markdown
59 lines
2.1 KiB
Markdown
---
|
|
name: windows-openssh
|
|
description: Use system OpenSSH (bare `ssh`); never Git for Windows SSH; use forward slashes for all Windows paths in Git Bash
|
|
applies-to: 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.
|
|
|
|
```bash
|
|
# 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`:
|
|
|
|
```bash
|
|
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.
|