SSH
Official Documentation: https://man.openbsd.org/ssh¶
Cheat Sheet: SSH Commands¶
Purpose¶
SSH (Secure Shell) is the standard tool for secure remote login and tunneling. It encrypts traffic and allows shell access, file transfer, and port forwarding.
Scenarios¶
- CTF: Log in with leaked credentials/keys to pivot further.
- Real world: Administer remote systems securely, use tunneling for access to internal services.
All needed info to run¶
- Syntax:
ssh [user@]host [options]. - Common options:
-i <keyfile>→ specify private key-p <port>→ custom port-L <lport>:<rhost>:<rport>→ local port forward-R <rport>:<lhost>:<lport>→ remote port forward-D <port>→ dynamic (SOCKS) proxy- Config file:
~/.ssh/configfor shortcuts. - Keys: generated with
ssh-keygen.
Example commands & outputs¶
# Basic login
$ ssh user@192.168.56.101
# Output: user shell prompt on remote system
# Login with private key
$ ssh -i id_rsa user@192.168.56.101
# Local port forward (access internal service)
$ ssh -L 8080:localhost:3306 user@192.168.56.101
# Localhost:8080 forwards to remote MySQL port
# Dynamic SOCKS proxy
$ ssh -D 1080 user@192.168.56.101
# Configure browser to use SOCKS5 proxy localhost:1080
SSH Basics
- Use key-based auth for better security; manage with
ssh-keygenand~/.ssh/config. - Port forwarding (
-L,-R,-D) enables powerful tunneling and pivoting. - Check permissions on private keys (chmod 600 id_rsa).
- Always verify host authenticity with fingerprints to prevent MITM.