Linux / Befehl ssh: Sicher mit einem Remote-Host verbinden

ssh ist ein OpenSSH-Client, der es Ihnen ermöglicht, sich bei einem Remote-Server anzumelden oder Befehle über eine verschlüsselte Verbindung auszuführen. Sie verbinden sich, indem Sie die Serveradresse und das Konto angeben. Beim ersten Verbindungsaufbau müssen Sie den Fingerabdruck des Hostschlüssels des Servers überprüfen.

SSH verschlüsselt die übertragenen Inhalte und überprüft die Identität des Servers mithilfe des Hostschlüssels. Für die Benutzerauthentifizierung kann entweder ein Passwort oder eine Methode mit einem öffentlichen Schlüssel verwendet werden. Der Benutzer in user@host ist das Remote-Konto, und wenn Sie einen Remote-Befehl als Argument angeben, wird dieser ausgeführt, anstatt eine interaktive Shell zu öffnen, und anschließend beendet. Ersetzen Sie das Beispiel server.example.com und das Konto durch die tatsächlichen Werte.

Grundlegende Syntax

ssh [options] [user@]host [remote command]

Die installierte Implementierung und die Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung des aktuellen Systems mit man ssh.

Beispiele

Remote-Anmeldung

Stellen Sie eine Verbindung her, nachdem Sie den Fingerabdruck des Host-Schlüssels des Servers über einen vertrauenswürdigen Weg überprüft haben.

ssh alice@server.example.com

Verbindung zu einem anderen SSH-Port

Geben Sie mit kleinem -p an, wenn der Server einen anderen Port als den Standard verwendet, z. B. 2222.

ssh -p 2222 alice@server.example.com

Führen Sie einen Remote-Befehl einmal aus

Überprüfen Sie den Hostnamen eines Remote-Systems, ohne eine interaktive Shell zu betreten.

ssh alice@server.example.com hostname

Verifizierungsverfahren beim ersten Verbindungsaufbau

Wenn es sich um einen Server handelt, zu dem Sie über ssh zum ersten Mal eine Verbindung herstellen, kann eine Meldung zur Überprüfung des Host-Schlüsselfingerabdrucks angezeigt werden. Bestätigen Sie diese erst nach dem Vergleich mit dem vom Serveradministrator bereitgestellten Fingerabdruck.

ssh user@server.example.test

Formate von Nachrichten, die beim ersten Verbinden erscheinen können:

The authenticity of host 'server.example.test' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Das Eingeben von yes hier wird den Hostschlüssel im lokalen known_hosts speichern. Wenn bei späteren Verbindungen eine Warnung erscheint, dass sich der Schlüssel geändert hat, löschen Sie den Eintrag nicht blind; überprüfen Sie, ob der Server neu installiert wurde oder der Schlüssel ersetzt wurde. Bei der Verwendung der öffentlichen Schlüssel-Authentifizierung anstelle der Passwort-Authentifizierung verwalten Sie die Zugriffsberechtigungen und Backups der privaten Schlüsseldatei sicher.

Wenn eine Verbindung fehlschlägt, trennen Sie die DNS-Auflösung, die TCP-Erreichbarkeit, den SSH-Dienst des Servers und die Authentifizierung. ssh -v user@host hilft zu zeigen, wo die Aushandlung oder Authentifizierung stoppt, aber seine detaillierten Protokolle können Hostnamen und Benutzernamen offenlegen. Bei schlüsselbezogenen Berechtigungsfehlern überprüfen Sie auch die Berechtigungen der privaten Schlüsseldatei.

Hauptoptionen und Format

Optionen/Format Beschreibung
-p port Geben Sie den Port des entfernten SSH-Servers an.
-i keyfile Geben Sie die zu verwendende private Schlüsseldatei an.
-J jump_host Stellen Sie über einen Sprung-Host eine Verbindung zum Ziel her.
-L local_port:host:port Konfigurieren Sie die lokale Portweiterleitung.
-N Führt keine Remote-Befehle aus. Hauptsächlich für Weiterleitungen verwendet.
-v Gibt detaillierte Verbindungs- und Authentifizierungsprozesse aus.

Vorsichtsmaßnahmen bei der Verwendung

Genehmigen Sie den beim ersten Verbinden angezeigten Hostschlüsselfingerabdruck nicht automatisch. Vergleichen Sie ihn mit dem vom Administrator über einen separaten Weg bereitgestellten Fingerabdruck, und wenn sich die Warnung ändert, prüfen Sie auf mögliche Man-in-the-Middle-Angriffe oder Server-Schlüsselaustausch. Teilen Sie den privaten Schlüssel nicht mit anderen und beschränken Sie die Zugriffsberechtigungen. Da Weiterleitungen den Expositionsbereich lokaler Dienste ändern können, überprüfen Sie die gebundene Adresse.

Häufig gestellte Fragen

Was ist, wenn eine Warnung erscheint, dass sich der Server-Schlüssel geändert hat, wenn Sie über ssh verbinden?

Dies könnte auf eine Neuinstallation des Servers oder einen Schlüsselaustausch zurückzuführen sein, es besteht jedoch auch die Möglichkeit eines Angriffs. Löschen Sie den bestehenden Schlüssel oder deaktivieren Sie die Überprüfung nicht, bis Sie den neuen Fingerabdruck über einen unabhängigen Weg mit dem Administrator bestätigt haben.

Offizielle Dokumentation

Sie können das genaue Verhalten der Optionen und die Unterschiede zwischen den Implementierungen in der offiziellen ssh-Dokumentation nachlesen.