Die Verwendung von SSH-Schlüsselpaaren statt traditioneller Passwort-Logins bietet eine deutlich erhöhte Sicherheit für deine Serververbindungen. SSH-Schlüssel sind komplexer und daher schwerer zu erraten oder zu knacken als herkömmliche Passwörter. Zudem kannst du den Passwort-Login auf dem Server deaktivieren, um die Sicherheit weiter zu erhöhen. Hier zeigen wir dir, wie du ein SSH-Schlüsselpaar unter Windows, Mac und Linux erstellst, den öffentlichen Schlüssel auf dem Server hinterlegst und den Passwort-Login abschaltest.
Warum sind Zertifikats-Logins sicherer?
Zertifikats-Logins, basierend auf SSH-Schlüsselpaaren, sind sicherer als Passwort-Logins, weil:
- Komplexität: SSH-Schlüssel haben Tausende von Bits an Daten, im Gegensatz zu Passwörtern, die in der Regel viel kürzer sind.
- Private Schlüssel: Der private Schlüssel bleibt immer auf deinem lokalen Rechner und wird nie über das Netzwerk übertragen.
- Phishing-Resistenz: Selbst wenn ein Angreifer den Verkehr abfängt, ohne den privaten Schlüssel kann er keine Authentifizierung durchführen.
Windows
SSH-Schlüssel mit PuTTYgen erstellen
- PuTTYgen herunterladen: Lade PuTTYgen von der offiziellen PuTTY-Download-Seite herunter und starte das Programm.
- Schlüssel generieren:
- Wähle
ed25519
als Typ für den zu generierenden Schlüssel. - Klicke auf
Generate
und bewege die Maus im Fenster, um Zufälligkeit zu erzeugen.
- Wähle
- Schlüssel speichern:
- Gib eine Passphrase ein und speichere den privaten Schlüssel über
Save private key
. - Speichere den öffentlichen Schlüssel über
Save public key
.
- Gib eine Passphrase ein und speichere den privaten Schlüssel über
SSH-Schlüssel mit OpenSSH erstellen
In Windows 10 und Windows 11 kannst du auch den integrierten OpenSSH-Client nutzen:
- PowerShell öffnen und folgenden Befehl eingeben:
ssh-keygen -t ed25519
- Speicherort und Passphrase wählen, wenn dazu aufgefordert.
Mac und Linux
Das Erstellen eines SSH-Schlüsselpaares unter Mac und Linux ist ähnlich und kann einfach über das Terminal erfolgen:
- Terminal öffnen und folgenden Befehl eingeben:
ssh-keygen -t ed25519
- Bei der Aufforderung, den Speicherort für den Schlüssel anzugeben, kannst du Enter drücken, um die Standardoption zu wählen. Gib eine Passphrase ein, um deinen Schlüssel zu sichern.
Öffentlichen Schlüssel auf dem Server hinterlegen
Nachdem du dein SSH-Schlüsselpaar erstellt hast, musst du den öffentlichen Schlüssel auf deinem Server hinterlegen:
- Öffentlichen Schlüssel kopieren:
- Unter Windows findest du den öffentlichen Schlüssel im PuTTYgen-Fenster oder im angegebenen Speicherort, wenn du OpenSSH verwendet hast.
- Unter Mac und Linux kannst du den Inhalt deines öffentlichen Schlüssels mit
cat ~/.ssh/id_rsa.pub
anzeigen.
- SSH-Verbindung zum Server herstellen und den öffentlichen Schlüssel in
~/.ssh/authorized_keys
des Zielbenutzers einfügen:- Du kannst den öffentlichen Schlüssel manuell einfügen, indem du dich über SSH auf dem Server anmeldest und den Schlüssel mit einem Texteditor in die
authorized_keys
-Datei einfügst. - Alternativ kannst du unter Mac und Linux den Befehl
ssh-copy-id benutzername@serveradresse
verwenden, der automatisch deinen öffentlichen Schlüssel im entsprechenden Verzeichnis des Servers hinterlegt.
- Du kannst den öffentlichen Schlüssel manuell einfügen, indem du dich über SSH auf dem Server anmeldest und den Schlüssel mit einem Texteditor in die
Passwort-Login auf dem SSH-Server abschalten
Um die Sicherheit deines Servers zu erhöhen, solltest du den Passwort-Login für SSH abschalten. So geht’s:
- Verbinde dich mit deinem Server: Nutze SSH, um dich mit deinem Server zu verbinden.
- SSH-Konfigurationsdatei bearbeiten: Öffne die SSH-Konfigurationsdatei in einem Texteditor. Du benötigst root-Zugriff, um diese Datei zu bearbeiten.
sudo nano /etc/ssh/sshd_config
- Passwort-Authentication deaktivieren: Suche in der Datei nach der Zeile
#PasswordAuthentication yes
und ändere sie zuPasswordAuthentication no
. Wenn diese Zeile nicht existiert, fügePasswordAuthentication no
am Ende der Datei hinzu. - Konfiguration speichern und SSH-Dienst neu starten: Speichere die Änderungen und schließe den Editor. Starte den SSH-Dienst neu, um die Änderungen zu übernehmen.
sudo systemctl restart sshd
- Testen: Nachdem der SSH-Dienst neu gestartet wurde, versuche, dich erneut zu verbinden, um sicherzustellen, dass alles korrekt funktioniert. Du solltest nicht mehr in der Lage sein, dich mit einem Passwort anzumelden.
Fazit
Durch das Erstellen eines SSH-Schlüsselpaares und die Deaktivierung des Passwort-Logins erhöhst du die Sicherheit deines Servers erheblich. Dieser Ansatz schützt vor einer Vielzahl von Angriffen und macht den Zugriff für autorisierte Benutzer effizient und sicher. Denke daran, dass du vor dem Deaktivieren des Passwort-Logins sicherstellen solltest, dass dein SSH-Schlüsselpaar korrekt funktioniert, um einen Ausschluss vom System zu vermeiden.