Ein guter Serveradministrator verwendet mehrere starke Passwörter, die schwer zu merken sind; Es ist jedoch schwierig und unpraktisch, jedes Mal jedes Mal einzugeben, wenn Sie auf entfernte Server zugreifen. Um dieses Problem zu lösen, werden wir in diesem Tutorial darüber sprechen passwortlos SSH und wie Sie es unter Linux konfigurieren können!
What is Passwordless SSH?
Passwortloses SSH ermöglicht es Ihnen, einen Client zu exportieren SSH öffentlichen Schlüssel an den Remote-Server, damit sich der Client anmelden kann, ohne ein Passwort zu benötigen. Der Weg, dies zu erreichen, ist die Verwendung eines asymmetrischen Schlüsselpaars.
Das Authentifizierungsverfahren funktioniert wie folgt:
Wenn der Client versucht, auf den SSH-Server zuzugreifen, prüft der Server zunächst, ob der öffentliche Schlüssel des Clients autorisiert ist. Wenn autorisiert, wird der Authentifizierungsprozess fortgesetzt. Wenn es nicht autorisiert ist, endet der Prozess und Sie können nicht auf den Server zugreifen.
Wenn der Server den öffentlichen Schlüssel des Clients autorisiert, verschlüsselt der Server eine Nachricht mit dem öffentlichen Schlüssel des Clients. Sobald der Server die Nachricht verschlüsselt hat, sendet er sie an den Client.
Der Client erhält die Nachricht vom Server. Sobald die Nachricht empfangen wurde, versucht der Client, diese Nachricht mit dem privaten Schlüssel zu entschlüsseln. Wenn der Client die Nachricht mit dem privaten Schlüssel entschlüsselt, erkennt der Server dies und die Verbindung zum SSH-Server wird hergestellt.
Wenn der Client die vom Server gesendete Nachricht nicht entschlüsseln kann, wird der Verbindungsprozess zum Server abgebrochen.

Why use SSH Passwordless login
Passwortloses SSH bietet mehrere Vorteile gegenüber herkömmlichen passwortbasierten Anmeldemethoden. Einige der wichtigsten Vorteile, die die Verwendung von passwortlosem SSH lohnenswert machen, sind:
Bequeme und sichere Anmeldung
Die Tatsache, dass Sie sich keine Passwörter merken und eingeben müssen, um sich mit einem SSH-Server zu verbinden, macht den Authentifizierungsprozess bequem. Darüber hinaus basiert es auf Public-Private-Key-Kryptografie, wodurch das Risiko des Diebstahls von Passwörtern eliminiert wird der Mann in der Mitte und andere Phishing-Attacken.
Sicherungsaufgaben automatisieren
Mit Rsync und anderen Dienstprogrammen können Sie die Aufgabe automatisieren, eine wöchentliche Sicherung der in einem Büro in den Vereinigten Staaten erstellten Inhalte zu erstellen und diese in einem Büro in China zu speichern. Der Vorgang würde über SSH verschlüsselt und vollständig automatisch erfolgen, da Sie kein Passwort eingeben müssen.
Mounten Sie ein Remote-Dateisystem
Passwortloses SSH ist nützlich, wenn Sie ein Remote-Dateisystem mit SSHFS mounten müssen. Indem wir ohne Passwörter auf den SSHFS-Server zugreifen, können wir den SSHFS-Server dazu bringen, sich selbst zu mounten, wenn wir unseren Client starten.
Darüber hinaus verwenden mehrere Git-Server die öffentliche SSH-Schlüsselauthentifizierung. Daher kann das Paar asymmetrischer Schlüssel, das Sie erstellen, um eine Verbindung zu einem SSH-Server herzustellen, andere Verwendungszwecke haben, z. B. die Authentifizierung während der Verbindung zu unserem Git-Server.
Setup SSH Passwordless Login in Linux
# 1. Stellen Sie sicher, dass SSH-Server und -Client installiert sind
Als erstes müssen Sie sicherstellen, dass auf dem System, das als Server fungieren soll, ein SSH-Server installiert ist. Dazu müssen wir ein Terminal öffnen und den folgenden Befehl eingeben:
sudo apt-get install openssh-server
Wenn in unserem Betriebssystem kein neues Paket installiert wird, ist auf dem Computer, der als Server fungieren wird, der SSH-Server bereits installiert und läuft. Stellen Sie in ähnlicher Weise sicher, dass das System, das als Client fungiert, über die erforderlichen Pakete verfügt, um eine Verbindung zum SSH-Server herzustellen. Öffnen Sie dazu ein Terminal und geben Sie den folgenden Befehl ein:
sudo apt-get install openssh-client
Heutzutage haben die meisten Linux-Distributionen standardmäßig einen SSH-Client und -Server installiert.
# 2. Erstellen Sie die asymmetrischen Schlüsselpaare
Sobald Sie sicher sind, dass der SSH-Server und der Client über die erforderlichen Pakete verfügen, können Sie die asymmetrischen Schlüssel generieren, um ohne Eingabe eines Passworts auf unseren SSH-Server zuzugreifen.
Dazu müssen Sie auf dem Computer, der als Client fungieren soll, ein Terminal öffnen und den folgenden Befehl eingeben:
ssh-keygen -b 4096 -t rsa
Die Bedeutung der einzelnen Befehlsparameter ist wie folgt:
ssh-keygen
: Es ist der Befehl, der das Schlüsselpaar generiert.
-b 4096
: Sie geben an, dass der zu generierende asymmetrische Schlüssel eine Größe von 4096 Bit hat. Andere Größen, die Sie auswählen können, sind beispielsweise 1024 oder 2048.
-t rsa
: Gibt an, dass der zum Generieren des Schlüsselpaars verwendete Algorithmus RSA sein muss. Andere Algorithmen, die wir verwenden können, sind DSA, ECDSA, RSA1 und ED25519.
Unmittelbar nach Ausführung des Befehls werden Sie nach dem Ort gefragt, an dem Sie die Schlüssel speichern möchten, und nach dem Namen, den Sie ihnen geben möchten. Drücken Sie einfach die Eingabetaste. Auf diese Weise werden die Schlüssel, die am Standardspeicherort gespeichert werden, d. /home/ Benutzer /.ssh/ und wird den Standardnamen id_rsa haben.
Als nächstes werden Sie gefragt, ob Sie ein Passwort eingeben möchten, um den privaten Schlüssel zu verschlüsseln. Da wir uns ohne Eingabe eines Passworts mit dem Server verbinden möchten, drücken Sie die Eingabetaste, ohne ein Passwort einzugeben.
Abschließend werden Sie aufgefordert, das Passwort erneut einzugeben. Da wir kein Passwort eingegeben haben, drücken Sie erneut die Eingabetaste.

Nachdem Sie diese Schritte ausgeführt haben, werden die asymmetrischen Schlüssel am Speicherort ~/.ssh erstellt.
# 3. Kopieren Sie den öffentlichen SSH-Schlüssel auf den Remote-Server
Es gibt zwei Arten von SSH-Schlüssel zur Organisation des passwortlosen Zugangs über SSH: ein nicht geheimer öffentlicher Schlüssel (ein öffentlicher Schlüssel) und ein geheimer Schlüssel (ein privater Schlüssel), id_rsa ist Ihr privater Schlüssel, und id_rsa.pub ist Ihr öffentlicher Schlüssel.
Sie müssen den öffentlichen Schlüssel auf den Remote-Server kopieren, entweder mit dem Befehl ssh-copy-id oder manuell.
Die typische Syntax für den SSH-Befehl zum Kopieren des öffentlichen Schlüssels lautet wie folgt.
ssh-copy-id username@remote.host.name
Das folgende Beispiel ist vielleicht klarer:
ssh-copy-id root@192.168.1.6

Eine alternative Möglichkeit besteht darin, sich beim Remote-Server anzumelden und beispielsweise eine Textdatei im Verzeichnis ~/.ssh zu erstellen, indem Sie den folgenden Befehl ausführen.
nano ~/.ssh/authorized_keys
Kopieren Sie den Inhalt Ihrer Datei ~ / .ssh / id_rsa.pub auf Ihrem lokalen Rechner in diese Datei, speichern Sie die Datei und beenden Sie den Texteditor.

# 4. Testen des passwortlosen Zugriffs über SSH
Um zu testen, ob das passwortlose SSH einfach versucht, auf den SSH-Server zuzugreifen:
$ ssh remote_username@server_ip_address
Wenn alles geklappt hat, werden Sie sofort ohne Passwort eingeloggt.
Disable SSH Passwordless Login in Linux
Um die kennwortlose SSH-Anmeldung zu deaktivieren, öffnen Sie die SSH-Konfigurationsdatei mit Ihrem bevorzugten Texteditor. Bei den meisten Distributionen befindet sich die Konfigurationsdatei unter /etc/ssh/sshd_config.
Suchen Sie die Zeile, die lautet Leere Passwörter zulassen ja und ändern PermitEmptyPasswords ja zu PermitEmptyPasswords Nr.
Speichern Sie die Änderungen in der Konfigurationsdatei und beenden Sie den Texteditor.
Starten Sie SSH neu, um die Änderungen zu übernehmen:
sudo systemctl restart sshd
Zusammenfassung
Passwörter, egal wie kompliziert, sind weniger sicher, und wenn Sie viele Server haben oder sich häufig anmelden müssen, wird der Prozess ineffizient. Die passwortlose SSH-Authentifizierung mit asymmetrischen Schlüsseln ist nicht nur bequemer, sondern auch sicherer und schützt Sie vor Phishing-Angriffen.
Sie können auch erkunden Symmetrische Verschlüsselung.