skills/dicklesworthstone/ssh/SKILL.md
SSH remote access patterns and utilities. Connect to servers, manage keys, tunnels, and transfers.
npx skillsauth add aiskillstore/marketplace sshInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use SSH for secure remote access, file transfers, and tunneling.
Connect to server:
ssh user@hostname
Connect on specific port:
ssh -p 2222 user@hostname
Connect with specific identity:
ssh -i ~/.ssh/my_key user@hostname
Config file location:
~/.ssh/config
Example config entry:
Host myserver
HostName 192.168.1.100
User deploy
Port 22
IdentityFile ~/.ssh/myserver_key
ForwardAgent yes
Then connect with just:
ssh myserver
Execute single command:
ssh user@host "ls -la /var/log"
Execute multiple commands:
ssh user@host "cd /app && git pull && pm2 restart all"
Run with pseudo-terminal (for interactive):
ssh -t user@host "htop"
Copy file to remote:
scp local.txt user@host:/remote/path/
Copy file from remote:
scp user@host:/remote/file.txt ./local/
Copy directory recursively:
scp -r ./local_dir user@host:/remote/path/
Sync directory to remote:
rsync -avz ./local/ user@host:/remote/path/
Sync from remote:
rsync -avz user@host:/remote/path/ ./local/
With progress and compression:
rsync -avzP ./local/ user@host:/remote/path/
Dry run first:
rsync -avzn ./local/ user@host:/remote/path/
Local forward (access remote service locally):
ssh -L 8080:localhost:80 user@host
# Now localhost:8080 connects to host's port 80
Local forward to another host:
ssh -L 5432:db-server:5432 user@jumphost
# Access db-server:5432 via localhost:5432
Remote forward (expose local service to remote):
ssh -R 9000:localhost:3000 user@host
# Remote's port 9000 connects to your local 3000
Dynamic SOCKS proxy:
ssh -D 1080 user@host
# Use localhost:1080 as SOCKS5 proxy
Connect through jump host:
ssh -J jumphost user@internal-server
Multiple jumps:
ssh -J jump1,jump2 user@internal-server
In config file:
Host internal
HostName 10.0.0.50
User deploy
ProxyJump bastion
Generate new key (Ed25519, recommended):
ssh-keygen -t ed25519 -C "[email protected]"
Generate RSA key (legacy compatibility):
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Copy public key to server:
ssh-copy-id user@host
Copy specific key:
ssh-copy-id -i ~/.ssh/mykey.pub user@host
Start agent:
eval "$(ssh-agent -s)"
Add key to agent:
ssh-add ~/.ssh/id_ed25519
Add with macOS keychain:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
List loaded keys:
ssh-add -l
In ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
Create socket directory:
mkdir -p ~/.ssh/sockets
Remove old host key:
ssh-keygen -R hostname
Scan and add host key:
ssh-keyscan hostname >> ~/.ssh/known_hosts
Verbose output:
ssh -v user@host
Very verbose:
ssh -vv user@host
Maximum verbosity:
ssh -vvv user@host
PasswordAuthentication no on serversfail2ban on servers to block brute forcessh-agent to avoid typing passphrase repeatedlycommand= in authorized_keysdevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.