SSH: Authentifizierung durch Schlüssel

In diesem Tutorial erkläre ich, wie man sich per SSH ohne Passwort mit einem Schlüsselpaar (privat/öffentlich) mit einem Linux-Server/Computer verbindet.

Schlüsselpaar mit ssh-keygen generieren

Um ein Schlüsselpaar zu generieren, müssen Sie über einen SSH-Client verfügen. Dies ist unter Windows 10 oder Linux möglich.

In diesem Tutorial habe ich meinen Windows 10-Computer verwendet.

Um ein Schlüsselpaar zu generieren, geben Sie den folgenden Befehl ein:

ssh-keygen -b 4096

-b 4096 ermöglicht Ihnen die Generierung eines 4096-Bit-Schlüssels, standardmäßig ist er 2048

Zunächst fordert Sie der Generator auf, die Datei anzugeben, in der sie gespeichert ist, standardmäßig der Name der id_rsa-Datei. Um den Standardwert zu verwenden, drücken Sie die Eingabetaste.

Überprüfen Sie im Zweifelsfall zunächst, ob ein Schlüsselpaar im Ordner user/.ssh auf Ihrem Computer vorhanden ist, da dieses überschrieben wird.

Dann können Sie ein Passwort eingeben, um den privaten Schlüssel zu schützen. Lassen Sie das Feld leer, damit Sie kein Passwort haben.

Wenn Sie ein Passwort eingeben, wird dieses bei jeder Verbindung abgefragt. In einer kritischen Umgebung empfehle ich Ihnen, ein Passwort einzugeben.

Nach Validierung des Passwortes wird der Schlüssel generiert:

Gehen Sie dann zum .ssh-Ordner und zeigen Sie den Inhalt an. Wir finden die Dateien unseres Schlüsselpaars.

Die Datei id_rsa ist der private Schlüssel, der auf Ihrem Computer verbleiben muss, und die Datei id_rsa.pub ist der öffentliche Schlüssel, mit dem wir die SSH-Server installieren, mit denen wir eine Verbindung herstellen.

Ich rate Ihnen dringend, Ihr Schlüsselpaar zu sichern.

SSH-Server konfigurieren

Nachdem wir nun ein Schlüsselpaar haben, konfigurieren wir unseren SSH-Server so, dass er über ein Schlüsselpaar eine Verbindung zu ihm herstellt.

Tatsächlich werden wir unseren öffentlichen Schlüssel hauptsächlich für ein Benutzerkonto konfigurieren, um eine Verbindung ohne Passwort (rdrit) herzustellen.

Offensichtlich machen wir das nicht auf dem Root-Konto …

Gehen Sie auf dem Linux-Server zum Home-Ordner des Benutzers, mit dem Sie eine Verbindung herstellen möchten.

Überprüfen Sie, ob der .ssh-Ordner vorhanden ist (ll).

Wenn der Ordner nicht existiert, erstellen Sie ihn:

mkdir .ssh

Überprüfen Sie im Ordner „.ssh“, falls vorhanden, ob die Datei „authorized_keys“ vorhanden ist. Andernfalls müssen Sie es erstellen:

touch .ssh/authorized_keys

Anschließend bearbeiten wir beispielsweise mit Nano die Datei „authorized_keys“, in die wir den öffentlichen Schlüssel kopieren.

nano .ssh/authorized_keys

Kopieren Sie den öffentlichen Schlüssel aus der Datei id_rsa.pub.

Beenden Sie den Editor, indem Sie die Datei speichern.

Von nun an können Sie von Ihrem Computer aus eine Verbindung zum Linux-Computer per SSH ohne Passwort herstellen.

ssh utilisateur@ip_serveur

Deaktivieren Sie die Passwortauthentifizierung auf dem SSH-Server

Dieser Schritt ist optional, aber um die Sicherheitsstufe Ihres Servers zu erhöhen, ist ein Brute-Force-Angriff mit einem privaten 4096-Bit-Schlüssel sehr langwierig und schwierig durchzuführen.

Bevor dieser Vorgang ausgeführt wird, muss eine sehr wichtige Vorsichtsmaßnahme getroffen werden, wobei der Zugriff auf den Computer nicht über SSH erfolgt, d. h. Zugriff vom Typ KVM für einen im Internet gemieteten VPS oder Zugriff vom Typ Hyper-V/VMWare Konsolen oder für einen physischen Server, physischen Zugriff oder über ILO/Idrac.

Im Falle eines gemieteten physischen Servers (Scaleway, OVH usw.) haben die Einstiegsserver keinen KVM-Zugriff. Bei Verlust Ihres öffentlichen oder privaten Schlüssels ist eine Wiederaufnahme der Hand von oben nicht möglich .

Bearbeiten Sie die SSH-Serverkonfigurationsdatei

sudo nano /etc/ssh/sshd_config

Suchen Sie nach der PasswordAuthentication-Direktive. Wenn sie kommentiert ist, müssen Sie sie auskommentieren und den Wert in „Nein“ ändern. Wenn sie nicht vorhanden ist, erstellen Sie die Zeile.

Speichern Sie die Datei und starten Sie den SSH-Dienst neu, um die Konfiguration zu übernehmen.

sudo systemctl restart sshd

Eine Anmeldung mit Passwort ist nun nicht mehr möglich.

Sudo ohne Passwort verwenden

Im letzten Teil dieses Tutorials erkläre ich Ihnen, wie Sie sicherstellen, dass Sie bei der Verwendung von sudo keine Passwortabfrage haben.

Diese Manipulation erhöht die Gefährdung Ihres Servers, insbesondere im Falle eines Diebstahls Ihres privaten Schlüssels.

Öffnen Sie die Datei /etc/sudoers mit nano.

sudo nano /etc/sudoers

Fügen Sie am Ende die folgende Zeile hinzu und passen Sie sie an Ihren Benutzer an:

utilisateur    ALL=(ALL) NOPASSWD:ALL

Speicher die Datei.

Jetzt können Sie Sudo-Befehle ausführen, ohne dass ein Passwort erforderlich ist.




Schreibe einen Kommentar