Inhaltsverzeichnis
Vortrag von Florian Knodt am 18.04.2015
Vom Verbinden bis zum Tunneln
Alle Angaben beziehen sich auf OpenSSH
Befehle:
Verbinden zum Rechner:
ssh evil.server
Verbinden zum Rechner mit Nutzerangabe
ssh anderernutzer@evil.server
Host-Keys anzeigen
ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key
(bzw. passender Key)
Host-Key aus “Adressbuch” löschen
ssh-keygen -R evil.server
Neues Schlüsselpaar erzeugen
ssh-keygen
Key auf Server kopieren
ssh-copy-id username@evil.server
Passwort eines Keys ändern
ssh-keygen -f ~/.ssh/id_rsa -p
Argumente
- -p 1234 – Port 1234 statt Port 22 nutzen
- -C – Kompression einschalten
- -v – verbose – zusätzliche Ausgaben zur Fehlersuche
Lokale Weiterleitung
ssh -L 127.0.0.1:1234:192.168.0.2:80 evil.server
Lokale Verbindungen an Port 1234 werden über evil.server an 192.168.0.2 Port 80 weitergeleitet
Remote Weiterleitung
ssh -R 0.0.0.0:1235:127.0.0.1:80 evil.server
Verbindungen auf eine beliebige IP von evil.server auf Port 1235 werden an Port 80 des lokalen PCs weitergeleitet
SOCKS-Proxy
ssh -D 3128 evil.server
Es wird ein SOCKS-Proxy auf Port 3128 gestartet. Dieser kann z.B. mit Firefox genutzt werden
X11-Forwarding
ssh -XY evil.server
Nun können in der Sitzung grafische Programme gestartet werden. Die Anzeige erfolgt auf dem lokalen PC
Config-Files
Alle Argumente und weitere Optionen können global oder pro Ziel in den Konfigurationen hinterlegt werden. Die Benutzerkonfiguration ist unter ~/.ssh/config zu finden, die Systemweite üblicherweise unter /etc/ssh/ssh_config
Escape-Sequenz
In einer SSH-Sitzung kann man üblicherweise mit der Tilde-Taste (~) ein internes Menü aufrufen. Die Wichtigsten Befehle:
- ~? Hilfe anzeigen
- ~. SSH-Verbindung beenden (auch wenn Gegenseite nicht mehr reagiert)
- ~# Liste der Verbindungen (incl. Tunnel) anzeigen
- ~C Interne Konsole aufrufen – hier kann man nachträglich Tunnel (-L, -R, -D) aufbauen
Weitere Ideen:
- ssh-agent: Kennwörter für SSH-Keys mussen nur alle X Minuten eingegeben werden
- autossh: SSH-Verbindung bei Abbrüchen neu Aufbauen
- SSH mit Pipes: Pipes lassen sich über SSH auch an entfernte Rechner senden