GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie die passwortlose SSH-Authentifizierung unter Linux ein

Passwörter werden mit der sich ständig weiterentwickelnden Cybersicherheitsumgebung immer anfälliger. Systeme werden mehr denn je anfällig für Brute-Force-Angriffe. Benutzer machen es Hackern auch leicht, ihre Systeme zu infiltrieren, indem sie Systeme mit schwachen und oft erratbaren Passwörtern sichern. Die 2-Faktor-Authentifizierung ist heute alltäglich und bietet eine zusätzliche Schutzebene mithilfe von OTP-Codes, um sicherzustellen, dass sich tatsächlich der Benutzer beim System anmeldet.

Eine andere Möglichkeit, Ihren Server zu sichern, besteht darin, eine passwortlose SSH-Authentifizierung auf Ihrem Server einzurichten. Dabei wird die SSH-Authentifizierung mit öffentlichem Schlüssel verwendet, bei der ein SSH-Schlüsselpaar auf dem lokalen System generiert wird. Das Schlüsselpaar besteht aus einem privaten und einem öffentlichen SSH-Schlüssel. Der private Schlüssel verbleibt auf dem lokalen System, während der öffentliche Schlüssel auf das entfernte System hochgeladen wird. Bei der Authentifizierung findet ein Schlüsselaustausch zwischen dem auf dem entfernten System gespeicherten öffentlichen Schlüssel und dem privaten Schlüssel auf dem lokalen System statt. Nachfolgende Verbindungen sind somit gesichert und es wird kein Passwort benötigt.

In dieser Anleitung führen wir Sie in 3 einfachen Schritten durch die Konfiguration der Passwort-SSH-Authentifizierung.

Passwortloses SSH-Setup-Lab

Zu Demonstrationszwecken verwenden wir die folgende Laborkonfiguration:

Local Linux system - 192.168.2.104
Remote Linux system - 192.168.2.108

Es wäre ratsam, auch sicherzustellen, dass Sie von Ihrem lokalen System mithilfe der SSH-Passwortauthentifizierung auf das Remote-System zugreifen können.

Fangen wir an!

Schritt 1. SSH-Schlüsselpaar generieren

Gleich zu Beginn generieren wir ein SSH-Schlüsselpaar, das im Home-Verzeichnis gespeichert wird. Rufen Sie also ssh-keygen auf Befehl wie gezeigt. Hier erstellen wir ein 4096-Bit-Schlüsselpaar.

$ ssh-keygen -b 4096

Akzeptieren Sie die Standardwerte, indem Sie einfach ENTER drücken. Sie finden das SSH-Schlüsselpaar in der Datei ~/.ssh Verzeichnis, das ein verstecktes Verzeichnis in Ihrem Home-Ordner ist.

Verwenden Sie zur Sicherheit den Befehl ls, um das Vorhandensein der SSH-Schlüssel zu überprüfen.

$ ls .ssh

Der private Schlüssel wird durch id_rsa gekennzeichnet während id_rsa.pub ist der öffentliche Schlüssel. Dies sind kryptografische Schlüssel, die verschlüsselt sind. Später kopieren wir den öffentlichen Schlüssel auf das entfernte System.

Schritt 2. Kopieren Sie das SSH-Schlüsselpaar auf das Remote-System

Als nächstes müssen Sie den öffentlichen Schlüssel kopieren und auf dem Remote-Linux-System speichern. Warum machen wir das? Bei der Public-Key-Authentifizierung findet ein Authentifizierungs-Handshake zwischen dem öffentlichen Schlüssel auf dem entfernten System und dem privaten Schlüssel auf dem lokalen System statt. Dadurch wird sichergestellt, dass der gesamte nachfolgende Datenverkehr zwischen dem lokalen Hostsystem und dem Remotesystem verschlüsselt wird.

Führen Sie zum Kopieren des öffentlichen SSH-Schlüssels ssh-copy-id aus Befehl wie folgt.

$ ssh-copy-id [email protected]

In unserem Fall ist dies:

$ ssh-copy-id [email protected]

Um die Verbindung fortzusetzen, geben Sie „Yes“ ein und drücken Sie ENTER. Geben Sie danach das Kennwort für das Remote-System ein, um sich anzumelden, und kopieren Sie den öffentlichen SSH-Schlüssel.

Der öffentliche SSH-Schlüssel wird einer eindeutigen Datei namens authorized_keys hinzugefügt im Home-Verzeichnis des Benutzerkontos, in das Sie sich einloggen. Der vollständige Pfad zu dieser Datei lautet ~/.ssh/authorized_keys

Nach erfolgreichem Kopieren des SSH-Schlüssels können Sie sich nun mit der Public-Key-Authentifizierung wie folgt beim Remote-System anmelden.

$ ssh [email protected]

Aus dem folgenden Ausschnitt können Sie sehen, dass wir uns beim Remote-System angemeldet haben, ohne auch nur zur Eingabe eines Passworts aufgefordert zu werden. Großartig!

Wie bereits erwähnt, wird der öffentliche Schlüssel in ~/.ssh/authorized_keys gespeichert Pfad.

Schritt 3. Passwortauthentifizierung deaktivieren (optional)

Wenn Sie die Sicherheit Ihres Remote-Systems erhöhen möchten, sollten Sie die Kennwortauthentifizierung deaktivieren. Damit stellen Sie sicher, dass Sie der einzige sind, der mit dem auf Ihrem lokalen System befindlichen privaten Schlüssel auf das System zugreifen kann. Der Schlüssel sollte immer streng geheim sein. Geben Sie es niemals an Dritte weiter, damit Ihr System nicht kompromittiert wird.

Öffnen Sie auf dem Remote-Host den Zugriff auf /etc/sshd_config Datei a angezeigt.

$ sudo vim /etc/sshd_config

Suchen Sie die PasswordAuthentication Parameter und setzen Sie ihn auf no wie abgebildet.

Stellen Sie als Nächstes sicher, dass die Authentifizierung mit öffentlichem Schlüssel wie gezeigt aktiviert ist.

Führen Sie einen Neustart des SSH-Dienstes wie folgt durch, damit die Änderungen bestehen bleiben.

$ sudo systemctl restart ssh

Um zu demonstrieren, dass die Passwortauthentifizierung deaktiviert ist, versuchen wir, mit dem Putty-SSH-Client auf den Server zuzugreifen. Geben Sie die Adresse des Remote-Systems ein und klicken Sie auf „Öffnen“

Geben Sie den Remote-Benutzernamen ein und drücken Sie die EINGABETASTE. Diesmal erhalten Sie eine Authentifizierung, da wir die Passwortauthentifizierung deaktiviert haben.

Schlussfolgerung

Die Public-Key-Authentifizierung ist eine manipulationssichere Methode zum Verbinden und Härten Ihres Servers. Es eliminiert Angriffsvektoren wie Brute-Force-Passwortangriffe, die ominös sind, wenn Ihr System über eine Passwortauthentifizierung verfügt.


Ubuntu
  1. So legen Sie den System-Hostnamen unter Linux fest oder ändern ihn

  2. So konfigurieren Sie die SSH-Schlüssel-basierte Authentifizierung in Linux

  3. So richten Sie SSH-Schlüssel ein

  4. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter Linux ein

  5. Wie passwortloses SSH unter Linux / UNIX funktioniert

So legen Sie den Hostnamen unter Linux fest oder ändern ihn

So erstellen Sie eine SSH-Schlüssel-Passphrase unter Linux

So richten Sie den öffentlichen und privaten SSH-Schlüssel unter Linux ein

So richten Sie einen SSH-Schlüssel auf einem Plesk-Server ein

So richten Sie SSH-Schlüssel unter Debian 11 Linux ein

Wie generiert und verwendet man einen SSH-Schlüssel in einem Linux-System?