Skip to content
Skills Library
DevOps & cloud · Tool integration

ssh

/ssh

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.

Licence
MIT
Last repository change
06.09.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
4
Scripts
0
HTML comments
1
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 06.09.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • SKILL.md zawiera komentarze HTML (1). Nie widać ich w podglądzie Markdown, a model je czyta.

What it does and when to use it

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.

Original author 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.

How it works

  1. Quick Start
  2. THE EXACT PROMPT — Common Workflows
  3. Essential Commands
  4. SSH Config
  5. SSH Agent
  6. Security Tips
  7. AGENTS.md Blurb
  8. References
Original SKILL.md headings · 182 lines, 535 words
SKILL.md preview
---
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 "you@example.com"

# 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) |
Files in this package (4)
  • SKILL.md 4 KB
  • references/COMMANDS.md 3 KB
  • references/KEYS.md 4 KB
  • references/TUNNELS.md 4 KB

Versions

RepositoryScoreLicence
This page · Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations100MIT
TerminalSkills/skills100Apache-2.0
OpenHands/extensions100MIT
ayasy-el/ssh_mcp100MIT
HelixDevelopment/agent100MIT
Tyler-R-Kendrick/agent-skills100MIT
erixwong/touwaka-ai-mate95Apache-2.0

Database snapshot: 13.11.2026 · package version 43903b805b8c (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95ssh-cheatsheet
    Use when the user needs SSH commands: key generation and ssh-agent, the ~/.ssh/config file, port forwarding and tunnels with -L, -R and -D, ProxyJump jump hosts, scp and sftp file transfer, and debugging or hardening connections.
  • 90ostiary
    Run commands and transfer files on remote servers through ostiary. Use whenever a task needs a shell on a server, logs from a host, a service restart, or a file copied to/from a host. Never use ssh/scp/rsync directly.
  • 100sftp-ssh-port-forwarding-tunnels
    Use this skill when creating local (-L), remote (-R), and dynamic (-D) encrypted SSH tunnels to bypass network boundaries.
  • 95glab-ssh-key
    Manage SSH keys for GitLab account including add, list, and delete operations. Use when setting up SSH authentication, managing SSH keys, or configuring Git over SSH. Triggers on SSH key, add SSH key, SSH authentication, Git SSH.
  • 100ssh-configuration
    Configure SSH servers and clients securely. Manage keys, tunnels, and config files. Use when setting up secure remote access.
  • 100ssh-configuration
    Configure SSH servers and clients securely. Manage keys, tunnels, and config files. Use when setting up secure remote access.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.