Das Netzwerkprotokoll SSH (Secure Shell) stellt eine verschlüsselte Verbindung zwischen zwei Computern her, sodass Sie einen Remote-Rechner auch über ein ungesichertes Netzwerk, wie beispielsweise das Internet, sicher steuern können. Über die SSH-Verbindung können Sie Befehle ausführen, Dateien kopieren und auch anderen Netzwerkverkehr übertragen. Es hat die alten, unverschlüsselten Protokolle (Telnet, RSH) vollständig abgelöst: Die Fernverwaltung von Linux-Servern erfolgt heute fast ausschließlich über SSH.
Unter Linux ist OpenSSH die am weitesten verbreitete Implementierung. Auf dem Server nimmt der Dienst „sshd“ Verbindungen entgegen, standardmäßig auf TCP-Port 22, während auf der Client-Seite der Befehl „ssh“ verwendet wird, der unter Linux, macOS sowie unter Windows 10 und neueren Versionen standardmäßig integriert ist.
Wie funktioniert das?
- Identifizierung des Servers. Bei der Verbindung präsentiert der Server seinen eigenen öffentlichen Schlüssel (Host-Schlüssel). Bei der ersten Verbindung zeigt der Client den Fingerabdruck dieses Schlüssels an und fragt, ob er ihm vertraut. Nach der Bestätigung wird der Schlüssel in die Datei „
~/.ssh/known_hosts“ gespeichert, und der Client überprüft ihn bei jeder nachfolgenden Verbindung. - Verschlüsselter Kanal. Durch einen Schlüsselaustausch erstellen beide Parteien einen gemeinsamen Schlüssel, der ausschließlich für diese Verbindung gilt; ab diesem Zeitpunkt werden alle Daten verschlüsselt übertragen.
- Die Identifizierung des Benutzers. Dies kann entweder über ein Passwort oder ein Schlüsselpaar erfolgen. Bei der Identifizierung mittels Schlüsselpaar verlässt der private Schlüssel niemals Ihren Computer; der Server kennt lediglich den öffentlichen Schlüssel, weshalb dies die sicherere Methode darstellt.
Verbindung zu einem Server herstellen
Öffnen Sie ein Terminal oder eine Eingabeaufforderung auf Ihrem eigenen Rechner und geben Sie Folgendes ein:
ssh felhasznalo@szervercime
Geben Sie anstelle von „felhasznalo“ den Benutzernamen des Servers ein (bei VPS in der Regel „root“ bei der ersten Anmeldung) und anstelle von „szervercime“ die IP-Adresse oder den Hostnamen des Servers. Falls SSH nicht auf Port 22 läuft, geben Sie den Port mit dem Schalter -p an: ssh -p 2222 felhasznalo@szervercime. Geben Sie bei der ersten Verbindung das Wort „yes“ ein, um den Server-Schlüssel zu akzeptieren, und geben Sie anschließend das Passwort ein. Sie können die Verbindung mit dem Befehl „exit“ oder der Tastenkombination „Ctrl+D“ beenden.
Die erste Verbindung zu unserem KVM-VPS unter Windows, macOS und Linux wird in der Schritt-für-Schritt-Anleitung zur SSH-Verbindung für VPS-Server erläutert.
Einrichtung der Anmeldung mit Passwort
ssh-keygen -t ed25519
ssh-copy-id felhasznalo@szervercime
Der erste Befehl erstellt auf Ihrem eigenen Rechner ein Schlüsselpaar (standardmäßig in den Dateien „~/.ssh/id_ed25519“ und „id_ed25519.pub“), der zweite kopiert den öffentlichen Schlüssel in die Datei „~/.ssh/authorized_keys“ auf dem Server. Anschließend können Sie sich ohne Passwort mit dem Schlüssel anmelden. Schützen Sie den privaten Schlüssel mit einer Passphrase und geben Sie ihn niemals an Dritte weiter.
Wofür kann es noch verwendet werden?
- Dateiübertragung: Sowohl
scpals auchsftpundrsyncübertragen Dateien über SSH; siehe: Kopieren von Dateien zwischen Servern. - Tunneling: Ein auf einem Server nur lokal verfügbarer Dienst, beispielsweise eine Datenbank, ist von Ihrem eigenen Rechner aus sicher erreichbar, oder der Server kann auch als SOCKS-Proxy genutzt werden.
- Komfort-Einstellungen: In der Datei „
~/.ssh/config“ können Sie Ihren Servern zusammen mit dem Benutzernamen, dem Port und dem Schlüssel einen Kurznamen zuweisen.
Häufige Fehlermeldungen
- „
Connection refused“: Auf dem Server läuft der SSH-Dienst nicht oder er hört auf einem anderen Port. Connection timed out(Zeitüberschreitung): Der Port wird von einer Firewall blockiert oder die Adresse ist fehlerhaft.Permission denied (publickey)– Der Server lässt nur den Zugriff per Schlüssel zu und findet den entsprechenden Schlüssel nicht.REMOTE HOST IDENTIFICATION HAS CHANGED(Die Remote-Host-Identifikation hat sich geändert): Der Schlüssel des Servers hat sich geändert, beispielsweise nach einer Neuinstallation. Wenn Sie sicher sind, dass dies der Grund ist, löschen Sie den alten Eintrag mit dem Befehl „ssh-keygen -R szervercime“; andernfalls stellen Sie keine Verbindung her, da die Verbindung von jemandem abgefangen werden könnte.
Über den Schutz des SSH-Servers (Vorgabe der Anmeldung per Schlüssel, Einschränkung des Root-Zugriffs) informiert der Artikel „Sicherheitseinstellungen des SSH-Servers“.