ssh · dicklesworthstone — Claude Code skill: what it does, how to install
Equips coding agents with SSH workflows: managing keys, configuring port tunnels, syncing files via rsync, and running commands on remote servers.
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a claude-codeWhat ssh does
This skill provides coding agents with ready patterns for remote terminal operations. It covers direct host connections, bastion jump hosts using the -J flag, remote command execution, and file transfers. For synchronizing folders, it explicitly prefers rsync -avzP over scp.
The instructions detail ~/.ssh/config setups, including connection multiplexing with ControlMaster and ControlPersist. It also explains ssh-agent workflows, generating Ed25519 keys, and setting up tunnels: local port forwarding with -L, remote forwarding with -R, and SOCKS proxies via -D.
Multiplexing requires creating the ~/.ssh/sockets folder before opening sessions. Without that directory, socket creation fails and fast reconnects will not work.
What it helps with
- forward remote database ports to localhost
- sync project files to remote hosts using rsync
- route connections through a bastion jump host in ~/.ssh/config
- generate Ed25519 keypairs and deploy public keys to servers
Example prompts for the agent
- Add a host block to ~/.ssh/config that connects to internal through bastion
- Show me an rsync command to sync ./dist/ to prod:/app/dist/
- Forward port 5432 from db-server to localhost through the jump host
How to install ssh
1Skills CLI (Vercel)
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a claude-code2Manually: put the files in place
~/.claude/skills/ssh/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ssh/
1Skills CLI (Vercel)
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a codex2Manually: put the files in place
.agents/skills/ssh/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a cursor2Manually: put the files in place
.cursor/skills/ssh/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations ssh2Manually: put the files in place
.github/skills/ssh/SKILL.md1Skills CLI (Vercel)
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a gemini-cli2Platform CLI
gemini skills install https://github.com/Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --path skills/sshManually: put the files in place
.devin/skills/ssh/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ssh
How to install ssh in Claude Code?
Run npx skills add Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh -a claude-code in your terminal.
What does the ssh skill do?
It gives AI agents instructions for SSH connections, jump hosts, port forwarding tunnels, Ed25519 key generation, and rsync transfers.
What is required for connection multiplexing to work?
You must create the socket directory using mkdir -p ~/.ssh/sockets alongside the ControlMaster and ControlPersist directives in ~/.ssh/config.
Source text
SKILL.md · MIT
--- name: ssh description: >- SSH remote access - connections, tunnels, keys, file transfers. Use when connecting to servers, managing SSH keys, setting up port forwarding, or transferring files with scp/rsync. --- <!-- TOC: Quick Start | THE EXACT PROMPT | Essential Commands | Config | AGENTS.md Blurb | References --> # SSH — Secure Remote Access > **Core Capability:** Secure shell connections, key management, tunneling, and file transfers. --- ## Quick Start ```bash # Connect to server ssh user@hostname # Connect with specific key ssh -i ~/.ssh/my_key user@hostname # Run remote command ssh user@host "cd /app && git status" # Copy file to remote scp local.txt user@host:/remote/path/ # Sync directory (preferred over scp) rsync -avzP ./local/ user@host:/remote/ ``` --- ## THE EXACT PROMPT — Common Workflows ### Connect Through Jump Host ```bash # Single jump (bastion) ssh -J jumphost user@internal-server # Multiple jumps ssh -J jump1,jump2 user@internal-server ``` ### Local Port Forward (access remote service locally) ```bash # Access remote:80 via localhost:8080 ssh -L 8080:localhost:80 user@host # Access db-server:5432 via localhost:5432 through jumphost ssh -L 5432:db-server:5432 user@jumphost ``` ### Generate and Deploy Key ```bash # Generate Ed25519 key (recommended) ssh-keygen -t ed25519 -C "[email protected]" # Copy public key to server ssh-copy-id user@host ``` --- ## Essential Commands | Task | Command | |------|---------| | Connect | `ssh user@host` | | Connect on port | `ssh -p 2222 user@host` | | Connect with key | `ssh -i ~/.ssh/key user@host` | | Run remote command | `ssh user@host "command"` | | Interactive remote | `ssh -t user@host "htop"` | | Copy to remote | `scp file.txt user@host:/path/` | | Copy from remote | `scp user@host:/path/file.txt ./` | | Sync to remote | `rsync -avzP ./local/ user@host:/remote/` | | Local forward | `ssh -L local:remote:port user@host` | | Remote forward | `ssh -R remote:local:port user@host` | | SOCKS proxy | `ssh -D 1080 user@host` | | Jump host | `ssh -J bastion user@internal` | | Generate key | `ssh-keygen -t ed25519` | | Copy key to server | `ssh-copy-id user@host` | | Debug connection | `ssh -vvv user@host` | --- ## SSH Config Location: `~/.ssh/config` ``` Host myserver HostName 192.168.1.100 User deploy Port 22 IdentityFile ~/.ssh/myserver_key ForwardAgent yes Host internal HostName 10.0.0.50 User deploy ProxyJump bastion ``` Then connect with just: `ssh myserver` ### Connection Multiplexing (faster reconnects) ``` Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 ``` ```bash mkdir -p ~/.ssh/sockets ``` --- ## SSH Agent ```bash # Start agent eval "$(ssh-agent -s)" # Add key ssh-add ~/.ssh/id_ed25519 # Add with macOS keychain ssh-add --apple-use-keychain ~/.ssh/id_ed25519 # List loaded keys ssh-add -l ``` --- ## Security Tips - Use Ed25519 keys (faster, more secure than RSA) - Set `PasswordAuthentication no` on servers - Keep keys encrypted with passphrases - Use `ssh-agent` to avoid typing passphrase repeatedly - Restrict key usage with `command=` in authorized_keys --- ## AGENTS.md Blurb Copy this to your project's AGENTS.md: ```markdown ### SSH Access SSH is configured for these servers: - **Production:** `ssh prod` (via ~/.ssh/config) - **Staging:** `ssh staging` Common operations: \`\`\`bash ssh prod "cd /app && git status" # Check deploy status rsync -avzP ./dist/ prod:/app/dist/ # Sync files ssh -L 5432:localhost:5432 prod # DB tunnel \`\`\` Keys: `~/.ssh/id_ed25519` (add with `ssh-add`) ``` --- ## References | Topic | Reference | |-------|-----------| | Full command reference | [COMMANDS.md](references/COMMANDS.md) | | Port forwarding details | [TUNNELS.md](references/TUNNELS.md) | | Key management | [KEYS.md](references/KEYS.md) |
© Dicklesworthstone · MIT · Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations
Similar skills
Everything for DevOps and infrastructure →ssh by other authors comes first.