SSH ist ein Client- und Serverprotokoll und hilft uns beim sicheren Zugriff auf das entfernte System über das Netzwerk durch den verschlüsselten Tunnel. SSH verfügt über einen integrierten Dateiübertragungsmechanismus (SCP) zum Übertragen von Dateien und Verzeichnissen über das Netzwerk und ist viel sicherer als FTP (File Transfer Protocol).
In größeren Umgebungen ist es mühsam, jedes Mal das Passwort einzugeben, um auf Remote-Computer zuzugreifen. Um die Anmeldung zu vereinfachen, können wir die passwortlose SSH-Funktion verwenden, um auf den Remote-Computer zuzugreifen, ohne das Passwort einzugeben.
Hier sehen wir, wie Sie die passwortlose SSH-Anmeldung unter CentOS 8 / RHEL 8 einrichten.
Annahmen
Hier haben wir zwei Maschinen mit zwei unterschiedlichen Benutzernamen.
Hostname | IP-Adresse | Benutzer | Betriebssystem | Zweck |
---|---|---|---|---|
server.itzgeek.local | 192.168.0.10 | raj | CentOS 8 / RHEL 8 | Quellmaschine |
client.itzgeek.local | 192.168.0.20 | RAM | CentOS 8 / RHEL 8 | Zielmaschine |
Hier verwende ich einen Hostnamen anstelle einer IP-Adresse.
Befolgen Sie die Schritte zum Erstellen der passwortlosen Anmeldung.
Passwortlose SSH-Anmeldung auf CentOS 8 einrichten
Um die kennwortlose SSH-Anmeldung zu aktivieren, müssen wir den öffentlichen Schlüsseleintrag des lokalen Computers in die Datei ~/.ssh/authorized_keys (~ steht für das Home-Verzeichnis des Benutzers) des Remote-Computers einfügen.
Wir können eine passwortlose SSH-Anmeldung auf zwei Arten einrichten. Wählen Sie eine der Möglichkeiten.
- Mit dem ssh-copy-id-Befehl
- Schlüssel manuell kopieren
Mit dem Befehl ssh-copy-id
Bei dieser Methode wird ein SSH-Schlüsselpaar auf dem Quellcomputer generiert und mit einem einzigen Befehl (ssh-copy-id) auf dem Zielcomputer platziert.
Der Befehl ssh-copy-id hängt den generierten öffentlichen SSH-Schlüssel an vorhandene Schlüssel in der Datei ~/.ssh/authorized_keys auf dem Ziel an. Wenn die Datei ~/.ssh/authorized_keys nicht auf dem Zielcomputer vorhanden ist, erstellt der Befehl sie und platziert den öffentlichen SSH-Schlüssel.Öffentlichen Schlüssel generieren
Melden Sie sich beim Quellcomputer an und erstellen Sie mit dem folgenden Befehl ein SSH-Schlüsselpaar.
[raj@server ~]$ ssh-keygen
Ausgabe:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
Nach der Erstellung finden Sie zwei Dateien id_rsa und id_rsa.pub im .ssh-Verzeichnis. Wir werden id_rsa.pub (öffentlicher Schlüssel) für die passwortlose SSH-Anmeldung verwenden.
[raj@server ~]$ ls -al ~/.ssh/
Ausgabe:
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Öffentlichen Schlüssel kopieren
Verwenden Sie den Befehl ssh-copy-id, der im Paket openssh-clients enthalten ist, mit einer Eingabedatei von id_rsa.pub.
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Ausgabe:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/raj/.ssh/id_rsa.pub" The authenticity of host 'client.itzgeek.local (192.168.0.20)' can't be established. ECDSA key fingerprint is SHA256:z4TLSbno9MLNF1ucNq4gtMlLQDVgrfLKEt8JguchKdo. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [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.
Schlüssel manuell kopieren
Öffentlichen Schlüssel generieren
Bei dieser Methode wird ein SSH-Schlüsselpaar auf dem Quellcomputer generiert und auf dem Zielcomputer abgelegt, indem Sie sich manuell dort anmelden.
Melden Sie sich zuerst bei der Quellmaschine an und erstellen Sie mit dem folgenden Befehl ein SSH-Schlüsselpaar.
[raj@server ~]$ ssh-keygen
Ausgabe:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
Nach der Erstellung finden Sie zwei Dateien id_rsa und id_rsa.pub im .ssh-Verzeichnis. Wir werden id_rsa.pub (öffentlicher Schlüssel) für die passwortlose SSH-Anmeldung verwenden.
[raj@server ~]$ ls -al ~/.ssh/
Ausgabe:
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Öffentlichen Schlüssel kopieren
Sie können den Befehl scp verwenden, um die Datei id_rsa.pub zum Ziel zu kopieren, oder den Inhalt der Datei id_rsa.pub kopieren und in die Datei ~/.ssh/authorized_keys des Zielcomputers einfügen.Methode 1
Melden Sie sich am Zielcomputer an und erstellen Sie das .ssh-Verzeichnis im Home-Verzeichnis des Benutzers, falls es nicht existiert.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Verwenden Sie den Befehl scp, um die Datei id_rsa.pub in das /tmp-Verzeichnis der Zielmaschine zu kopieren.
[raj@server ~]$ scp -pr ~/.ssh/id_rsa.pub [email protected]:/tmp
Sie müssten das Passwort für das Ziel eingeben, da wir die passwortlose Anmeldung noch konfigurieren müssen.
Legen Sie den öffentlichen Schlüssel für eine passwortlose Anmeldung in der Datei „authorized_keys“ ab.
[ram@client ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
Aktualisieren Sie die Berechtigung der Datei.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Methode 2
Melden Sie sich am Zielcomputer an und erstellen Sie ein .ssh-Verzeichnis im Home-Verzeichnis des Benutzers, falls es noch nicht existiert.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Bearbeiten Sie die Datei „authorized_keys“.
[ram@client ~]$ vi ~/.ssh/authorized_keys
Zeigen Sie auf der Quellmaschine den Inhalt der Datei id_rsa.pub mit dem cat-Befehl an.
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
Ausgabe: (Beispiel)
Kopieren Sie den Inhalt und fügen Sie ihn in die Datei „authorized_keys“ auf dem Ziel ein und speichern Sie ihn.
Aktualisieren Sie dann die Berechtigung der Datei.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Passwortlose Anmeldung testen
Greifen Sie nun mit dem ssh-Befehl auf den Remote-Rechner zu.
[raj@server ~]$ ssh [email protected]
Jetzt sollten Sie ohne Passwort auf den Remote-Rechner zugreifen können.
Schlussfolgerung
Das ist alles. Ich hoffe, Sie können die passwortlose SSH-Anmeldung unter CentOS 8 / RHEL 8 einrichten. Bitte teilen Sie Ihr Feedback im Kommentarbereich mit.