In dieser Anleitung zeige ich dir, wie du deinen Debian 12 Server absichern kannst, indem du den SSH-Zugang auf Public-Key-Authentifizierung umstellst. Dabei wird der SSH-Schlüssel direkt auf dem Server generiert und der private Schlüssel auf den Windows-Client übertragen. Du musst also kein Passwort mehr eingeben.
1. SSH Schlüssel auf dem Server generieren
Zuerst loggt ihr euch als der Benutzer ein, für welchen später der Login möglich sein soll. In meinem Fall heißt der Benutzer “christian”.
Nun generiere ein Schlüsselpaar direkt auf dem Server mit folgendem Befehl:
ssh-keygen -t rsa -b 4096
Anschließend bestätigt ihr den Speicherort mit “Enter” und könnt noch ein Passwort vergeben, um den privaten Schlüssel zu schützen (dies könnt ihr auch leer lassen). So siehts bei mir aus:
ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/christian/.ssh/id_rsa): Created directory '/home/christian/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/christian/.ssh/id_rsa Your public key has been saved in /home/christian/.ssh/id_rsa.pub The key fingerprint is: SHA256:d72FsdK0BtiISeiHsRyH2DcF4c4fx0PMLurX32UR4Aw christian@v220240535373269769 The key's randomart image is: +---[RSA 4096]----+ | o o++.E . | | . *o+o *+ . | | o B+.o *oo. | | =o. + = =.| | .S + B B..| | + = + o.| | . .. . o| | . . . o.| | .. .. .| +----[SHA256]-----+
Gebt nun folgenden Befehl ein:
ls -l ~/.ssh/
Hier solltet ihr nun folgende beide Dateien sehen:
-rw------- 1 christian christian 3401 23. Jan 15:05 id_rsa -rw-r--r-- 1 christian christian 755 23. Jan 15:05 id_rsa.pub id_rsa = privater Schlüssel id_rsa.pub = öffentlicher Schlüssel
2. Öffentlichen Schlüssel aktivieren
Füge den öffentlichen Schlüssel zur Datei authorized_keys
hinzu, um ihn für die Authentifizierung zu aktivieren:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
3. Privaten Schlüssel auf den Windows-Client übertragen
Um den privaten Schlüssel sicher auf deinen Windows-Rechner zu übertragen, kannst du zum Beispiel WinSCP verwenden. Dies gibt’s auch als portable Version.
Kopiert nun die Datei “id_rsa” auf euren Windows PC.
Ganz wichtig!
Die Sicherheit des ganzen Verfahrens hängt von der Geheimhaltung des privaten Schlüssels (id_rsa) ab. Dieser sollte NIEMALS weitergegeben werden.
4. Passwortbasierte Authentifizierung deaktivieren
Um sicherzustellen, dass nur noch die Public-Key-Authentifizierung für euren Server verwendet wird, passe die Konfiguration des SSH-Daemons an. Dazu öffnet ihr folgende Datei:
sudo nano /etc/ssh/sshd_config
Inhalt:
vorher: #PubkeyAuthentication yes #PasswordAuthentication yes nachher: PubkeyAuthentication yes PasswordAuthentication no PermitRootLogin no Ganz wichtig, ihr müsst jeweils noch die "#" entfernen vor den Zeilen
Jetzt startet ihr den Dienst noch neu:
sudo systemctl restart sshd
5. Verbindung aufbauen mit Putty
Putty ist ein einfacher SSH Client, mit welchem ihr eine Verbindung aufbauen könnt. Ihr könnt aber auch jeden anderen Client nutzen. Ich erkläre die Schritte hier am Beispiel von Putty.
5.1 Private Key ins richtige Format konvertieren
Zuerst laden wir uns noch “puttygen” herunter. Dieses Programm konvertiert unseren Private Key in ein Format, welches von Putty genutzt werden kann.
Klickt hier auf “Load” und wählt “All Files” aus, damit wir unsere “id_rsa” Datei angezeigt bekommen.
Anschließend sollte euch so etwas angezeigt werden:
Klickt nun einfach auf “Save private Key”:
5.2 Einloggen mit Putty
Nun benötigen wir Putty. Geht auf “Connection –> SSH –> Auth –> Credentials”
Hier fügt ihr euren private Key hinzu, welchen ihr im letzten Schritt mit Puttygen erzeugt habt.
Anschließend geht ihr auf “Session” und gebt dort euren Servernamen sowie Port ein:
Wenn alles geklappt hat, sollte eine Verbindung zu eurem Server aufgebaut werden:
Hier müsst ihr nun lediglich noch den Benutzernamen eingeben: