Was ist SSH?
Ein Protokoll (und ein Befehl), das die Kommunikation verschlüsselt, um sich über ein Netzwerk an einem anderen Computer anzumelden und dort Befehle auszuführen. Der Server wartet standardmäßig auf TCP-Port 22. Zur Authentifizierung wird neben Passwörtern häufig die Public-Key-Authentifizierung verwendet: Der öffentliche Schlüssel zum eigenen privaten Schlüssel wird in ~/.ssh/authorized_keys auf dem Server eingetragen. Über dieselbe Verbindung lassen sich mit scp oder rsync Dateien übertragen und Ports weiterleiten.
Japanische Bezeichnung: SSH
„SSH“ kommt in 3 Übungsfragen aus 2 Themen vor, z. B. Grundlagen von Linux und der Kommandozeile, Grundlagen der Computernetzwerke.
Fachgebiet: Grundlagen von Linux und der Kommandozeile
Einsatz in der Entwicklungspraxis
Vom eigenen PC meldet man sich per ssh an den Rechenservern an, auf denen EDA-Werkzeuge laufen, startet Simulationen und prüft Ergebnisse. Trägt man Host-Aliasse, Benutzernamen, Schlüsseldateien und Sprungserver (ProxyJump) in ~/.ssh/config ein, genügt zum Verbinden ssh server1. Werkzeuge mit grafischer Oberfläche nutzt man in Kombination mit X11-Forwarding oder Remote-Desktop-Mechanismen.
Häufige Fragen
Die Verbindung scheitert mit „Permission denied (publickey)“. Was sollte man prüfen?
Man prüft, ob der öffentliche Schlüssel zum verwendeten privaten Schlüssel in ~/.ssh/authorized_keys auf dem Server eingetragen ist und ob der Benutzername stimmt. Sind die Rechte von ~/.ssh oder authorized_keys auf dem Server zu großzügig (für andere beschreibbar), wird der Schlüssel aus Sicherheitsgründen unter Umständen nicht verwendet; daher setzt man etwa ~/.ssh auf 700 und authorized_keys auf 600. Mit ssh -v sieht man, welche Schlüssel ausprobiert wurden.
Wann verwendet man scp und wann rsync?
Beide übertragen Dateien über ssh. scp eignet sich für einfache Kopien, während rsync nur die Unterschiede zum Ziel sendet und daher effizient ist, um große Verzeichnisse wiederholt zu synchronisieren oder abgebrochene Übertragungen fortzusetzen. Mit rsync -av --delete gleicht man das Ziel an die Quelle an, doch Vorsicht: --delete löscht Dateien, die nur am Ziel existieren.