SSH (Secure-SHELL) ist ein sicheres Open-Source-Netzwerkprotokoll, das es Benutzern ermöglicht, sich sicher bei Remote-Linux-Systemen und anderen Netzwerkgeräten anzumelden. Darüber hinaus wird das Protokoll für die Übertragung von Dateien zwischen Linux-Systemen unter Verwendung des Secure Copy (SCP)-Protokolls verwendet .
Normalerweise fordert SSH Benutzer vor der Anmeldung zur Eingabe von Passwörtern auf. Sie können jedoch die kennwortlose SSH-Anmeldung bei einem anderen Remote-Linux-System von Ihrem Linux-System aus konfigurieren. Dies erhöht das Vertrauen und ist praktisch bei Cron-Jobs, die eine Remote-Sicherung von Dateien mithilfe des SCP-Protokolls erfordern.
In dieser Anleitung erfahren Sie, wie Sie die passwortlose SSH-Anmeldung mithilfe von SSH-Schlüsseln einrichten, um das Vertrauen zwischen zwei Servern zu erhöhen.
Umgebung einrichten
ssh client : 66.152.163.19 (Ubuntu 18.04)
ssh remote Host : 173.82.2.236 (CentOS 7)
Generieren Sie SSH-Schlüssel auf dem Client-System ( 66.152.163.19 )
Der erste Schritt beim Einrichten einer passwortlosen Anmeldung besteht darin, ssh-Authentifizierungsschlüssel im Clientsystem zu generieren. SSH-Schlüssel sind digitale Schlüssel, die Vertrauen zwischen Linux-Systemen schaffen.
Um die ssh-Schlüssel zu generieren, führen Sie den Befehl aus.
$ ssh-keygen
Sie werden nach der Datei gefragt, in der der Schlüssel gespeichert werden soll. Drücken Sie die Eingabetaste, um im Standardverzeichnis zu speichern ( /root/.ssh)
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Drücken Sie die Eingabetaste.
Als nächstes werden Sie nach einer Passphrase gefragt. Hier richten wir eine passwortlose Anmeldung ein, drücken Sie zweimal die Eingabetaste, um zu überspringen.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Drücken Sie bei beiden Gelegenheiten die Eingabetaste.
Die vollständige Ausgabe wird unten angezeigt.
Beispielausgabe
Das ssh-keygen
Der Befehl generiert sowohl öffentliche als auch private SSH-Schlüssel und speichert sie in /root/.ssh
Verzeichnis.
Zur Überprüfung ausführen:
ls /root/.ssh
Beispielausgabe
Der öffentliche Schlüssel wird durch id_rsa.pub
bezeichnet .
Der private Schlüssel wird durch id_rsa
bezeichnet .
Kopieren des öffentlichen SSH-Schlüssels auf das Remote-System (173.82.2.236)
Der nächste Schritt besteht darin, den öffentlichen Schlüssel auf den Remote-Linux-Server zu kopieren. Dies wird mit der ssh-copy-id
erreicht Befehl wie unten gezeigt.
ssh-copy-id remote_username@server_ip_address
In unserem Beispiel lautet der Befehl:
ssh-copy-id [email protected]
Sie werden gefragt, ob Sie die Verbindung wirklich fortsetzen möchten. Geben Sie yes
ein und drücken Sie die Eingabetaste
The authenticity of host '173.82.2.236 (173.82.2.236)' can't be established.
ECDSA key fingerprint is SHA256:U4aOk0p30sFjv1rzgh73uhGilwJ2xtG205QFqzB9sns.
Are you sure you want to continue connecting (yes/no)? yes
Als nächstes werden Sie nach dem Passwort des Remote-Systems gefragt. Geben Sie das Passwort ein und drücken Sie die Eingabetaste
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Die vollständige Ausgabe wird unten angezeigt.
Der öffentliche ssh-Schlüssel wird unter /root/.ssh/authorized_keys
gespeichert Datei auf dem Remote-System.
Anmelden beim Remote-System
Nachdem Sie den öffentlichen SSH-Schlüssel auf das Remote-System kopiert haben, können Sie sich jetzt anmelden, ohne wie gezeigt nach einem Passwort gefragt zu werden.
ssh server-ip-address
In unserem Fall lautet dies:
ssh 173.82.2.236
Und so richten Sie ein passwortloses SSH-Setup von einem Client-Linux-System zu einem Remote-Linux-Server ein.
- Löschen Sie den öffentlichen Schlüssel vom Client-System. Wenn Sie glauben, dass der private Schlüssel kompromittiert ist, löschen Sie den öffentlichen Schlüssel vom Remote-Server und richten Sie ihn erneut ein.
- Der obige SSH-Befehl funktioniert ohne Angabe einer Benutzer-ID, da wir den Root-Benutzer auf beiden Servern verwenden. Wenn Sie für einen anderen Benutzer eine passwortlose Anmeldung eingerichtet haben, geben Sie dies bitte auch im SSH-Befehl an.