All tools
Free

A searchable, printable SSH reference — connecting, keys, config, tunneling, SCP/SFTP and agent forwarding. Free.

Connecting

10
ssh user@host
Connect as user to host
ssh -p 2222 user@host
Connect on a non-default port
ssh -i ~/.ssh/id_ed25519 user@host
Use a specific identity key
ssh user@host 'uptime'
Run a single remote command and exit
ssh -v user@host
Verbose output for debugging (-vvv for more)
ssh -t user@host 'sudo -i'
Force a pseudo-terminal (for interactive cmds)
ssh -X user@host
Enable X11 forwarding
ssh -o ServerAliveInterval=60 user@host
Send keepalives to avoid timeouts
exit / Ctrl-D
Close the remote session
~.
Force-disconnect a frozen session

Key generation

8
ssh-keygen -t ed25519 -C 'you@example.com'
Generate a modern Ed25519 key pair
ssh-keygen -t rsa -b 4096
Generate a 4096-bit RSA key pair
ssh-keygen -t ed25519 -f ~/.ssh/work
Write the key to a specific file
ssh-keygen -p -f ~/.ssh/id_ed25519
Change the passphrase of an existing key
ssh-keygen -y -f ~/.ssh/id_ed25519
Print the public key from a private key
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
Show a key fingerprint
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
Show the fingerprint randomart image
ssh-keygen -R host
Remove a host key from known_hosts

Installing public keys

7
ssh-copy-id user@host
Copy your default public key to the server
ssh-copy-id -i ~/.ssh/work.pub user@host
Copy a specific public key
ssh-copy-id -p 2222 user@host
Copy the key over a custom port
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
Manual copy when ssh-copy-id is missing
chmod 700 ~/.ssh
Correct permissions on the .ssh directory
chmod 600 ~/.ssh/authorized_keys
Correct permissions on authorized_keys
pbcopy < ~/.ssh/id_ed25519.pub
Copy public key to clipboard (macOS)

SSH config (~/.ssh/config)

10
Host myserver
Alias: connect with `ssh myserver`
HostName 203.0.113.10
Real hostname or IP for the alias
User deploy
Default username for this host
Port 2222
Default port for this host
IdentityFile ~/.ssh/work
Key to use for this host
IdentitiesOnly yes
Only offer the listed key
ForwardAgent yes
Forward the SSH agent to this host
Host *.example.com
Wildcard match for a domain
Host *
Global defaults for all hosts
ServerAliveInterval 60
Keepalive interval for all hosts

Port forwarding / tunneling

7
ssh -L 8080:localhost:80 user@host
Local: reach host:80 via local 8080
ssh -L 5432:db.internal:5432 user@host
Local forward to a third host through the server
ssh -R 9000:localhost:3000 user@host
Remote: expose your local 3000 as host:9000
ssh -D 1080 user@host
Dynamic: SOCKS proxy on local port 1080
ssh -N -L 8080:localhost:80 user@host
Tunnel only, do not run a remote shell
ssh -f -N -L 8080:localhost:80 user@host
Open the tunnel in the background
ssh -g -L 8080:localhost:80 user@host
Allow other hosts to use the local forward

Jump hosts / bastions

5
ssh -J jump@bastion user@target
Hop through a bastion to reach the target
ssh -J h1,h2 user@target
Chain multiple jump hosts
ProxyJump bastion
Config equivalent of -J
ProxyCommand ssh -W %h:%p bastion
Older ProxyCommand-based jump
ssh -o ProxyJump=bastion user@target
Inline ProxyJump option

File transfer (scp & sftp)

7
scp file user@host:/path/
Copy a local file to the server
scp user@host:/path/file .
Copy a remote file to the current dir
scp -r dir/ user@host:/path/
Recursively copy a directory
scp -P 2222 file user@host:/path/
Copy over a custom port (note capital -P)
sftp user@host
Start an interactive SFTP session
put localfile / get remotefile
Upload / download inside SFTP
rsync -avz -e ssh dir/ user@host:/path/
Efficient sync over SSH (resumable)

ssh-agent & forwarding

7
eval "$(ssh-agent -s)"
Start the agent in the current shell
ssh-add ~/.ssh/id_ed25519
Add a key to the agent
ssh-add -l
List keys loaded in the agent
ssh-add -D
Remove all keys from the agent
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Store passphrase in macOS keychain
ssh -A user@host
Forward the agent for this connection
ForwardAgent yes
Config equivalent of agent forwarding

No entry matches “:q”.


About SSH Cheat Sheet

This SSH cheat sheet collects the commands and config you need to work with remote servers: connecting, key generation, installing public keys, the ~/.ssh/config file, port forwarding and tunneling, jump hosts and bastions, file transfer with scp and sftp, and ssh-agent with agent forwarding.

SSH syntax is easy to half-remember — is it -L or -R for that tunnel, which ssh-keygen flags produce a modern key, how does ProxyJump work? Each row here answers one of those questions with the exact command and a one-line explanation.

The sheet is free and rendered entirely in your browser. Filter it live with search, jump to a section from the sticky table of contents, copy any command with one click and print it for the moments when SSH is exactly what is broken.

How to use SSH Cheat Sheet

  1. Open the sheet and scan the sections, from Connecting and Key generation to ssh-agent & forwarding.
  2. Search for a term like tunnel, scp or ProxyJump to filter the commands live.
  3. Jump to Port forwarding / tunneling or SSH config via the sticky sidebar when you need a specific recipe.
  4. Click a command or its copy icon to copy it, then adapt the host and port placeholders.
  5. Print the sheet to keep an offline copy for server emergencies.

Frequently asked questions

Eight sections: connecting, key generation, installing public keys, the ~/.ssh/config file, port forwarding and tunneling, jump hosts and bastions, file transfer with scp and sftp, and ssh-agent with forwarding.

Yes. The tunneling section shows the -L and -R forms side by side with descriptions of which direction each forwards, plus dynamic forwarding — one of the most commonly confused parts of SSH.

Yes. There are sections for generating keys with ssh-keygen and for installing your public key on a server, along with agent commands for loading and forwarding keys.

Yes. Clicking any command, or the copy icon on its row, copies it to your clipboard so you can paste it into a terminal and swap in your host.

Yes, it is free, needs no account and prints cleanly for offline use.


Popular searches
ssh cheat sheet ssh commands list ssh keygen command ssh config file example ssh port forwarding ssh copy id scp and sftp commands ssh jump host
Need help?
Found an issue with this tool? Let our team know.
Report an issue

Add this free tool to your own website — copy and paste the code below.