Detaillierte Erläuterung der passwortfreien SSH-Anmeldekonfiguration unter Linux

Detaillierte Erläuterung der passwortfreien SSH-Anmeldekonfiguration unter Linux

Angenommen, es gibt zwei Linux-Server A und B, und wir möchten uns von einem Server aus per SSH ohne Passwort beim anderen Server anmelden können.

Die Informationen der beiden Server sind wie folgt:

Hostname IP-Adresse Passwortfreier Login-Benutzername
server1 192.168.12.11 Gast1
server2 192.168.12.12 Gast2

Umgebungseinstellungen (Root-Berechtigungen)

1. Firewall und SELinux ausschalten

Redhat verwendet SELinux zur Verbesserung der Sicherheit. So deaktivieren Sie es:

a. Ändern Sie SELINUX=enforcing in der Datei /etc/selinux/config dauerhaft in SELINUX=disabled und starten Sie dann neu.

b. Vorläufige Wirkung
0
So schalten Sie die Firewall aus:

a. Dauerhaft aktivieren: chkconfig iptables on
Deaktivieren: chkconfig iptables off

b. Temporärer Start: service iptables start
Herunterfahren: Dienst iptables wird gestoppt
Die beiden Server müssen separat konfiguriert und die Firewall und SELinux müssen ausgeschaltet werden.

2. Hostnamen festlegen

Bearbeiten Sie die Datei /etc/sysconfig/network mit dem Befehl: vim /etc/sysconfig/network und legen Sie das Format fest: HOSTNAME=[Hostname] .
Legen Sie den Hostnamen von Server A auf Server1 fest.

Legen Sie den Hostnamen von Server B auf Server2 fest.

3. Hosts konfigurieren

Bearbeiten Sie die Datei /etc/hosts mit dem Befehl: vim /etc/hosts und fügen Sie den Hosts-Dateien der beiden Server die folgende Konfiguration hinzu:

192.168.12.11 Server1
192.168.12.12 Server2 

4. Konfigurieren Sie sshd

Bearbeiten Sie die Datei /etc/ssh/sshd_config beider Server mit dem Befehl: vim /etc/ssh/sshd_config .

Entfernen Sie die „#“-Kommentare aus den folgenden 3 Zeilen:

RSA-Authentifizierung ja
PubkeyAuthentifizierung ja
Autorisierte Schlüsseldatei .ssh/authorized_keys

Starten Sie den SSHD-Dienst mit dem Befehl /sbin/service sshd restart neu.

Schlüsseleinstellungen

1. Erstellen Sie ein passwortfreies Login-Konto

Verwenden Sie den Befehl:

useradd guest1 //Neuen Benutzer erstellen passwd guest1 //Neues Benutzeranmeldekennwort festlegen 

Erstellen Sie auf ähnliche Weise ein Gast2-Konto auf Server2.

2. Generieren Sie einen geheimen Schlüssel

Wechseln Sie vom Root-Benutzer zum Konto, um ohne Kennwort angemeldet zu sein. Verwenden Sie den Befehl: su guest1.

Führen Sie den Befehl aus: ssh-keygen -t rsa

Es ist kein Passwort erforderlich. Drücken Sie einfach die Eingabetaste. Nachdem der Befehl ausgeführt wurde, werden zwei Dateien im Home-Verzeichnis des Gastbenutzers (/home/guest1/.ssh) generiert:

id_rsa: privater Schlüssel id_rsa.pub: öffentlicher Schlüssel 

Befolgen Sie die gleichen Schritte, um eine Schlüsseldatei für das Gast2-Konto auf Server2 zu generieren.

3. Importieren Sie den öffentlichen Schlüssel in die Authentifizierungsdatei

Verwenden Sie den Befehl:

Katze /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/autorisierte_Schlüssel
ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> autorisierte Schlüssel 

Verwenden Sie den Befehl cat authorized_keys, um den Inhalt der Datei authorized_keys wie folgt anzuzeigen:

4. Legen Sie Dateizugriffsberechtigungen fest

Verwenden Sie den Befehl:

chmod 700 /home/guest1/.ssh
chmod 600 /home/guest1/.ssh/authorized_keys

Nach Abschluss der obigen Einstellungen kann sich Server1 mit dem Befehl ssh guest1@server1 ohne Kennwort beim lokalen Computer anmelden.

Hinweis: Wenn die Hostnameninformationen in der Datei known_hosts fehlen, wird die folgende Meldung angezeigt. Geben Sie „yes“ ein, um den Hostnamen in die Datei known_hosts zu schreiben und sich erfolgreich anzumelden.

An diesem Punkt ist die passwortfreie SSH-Anmeldekonfiguration des Hostservers1 abgeschlossen. Als Nächstes konfigurieren Sie Server2.

5. Kopieren Sie die Authentifizierungsdatei auf andere Hosts

Führen Sie den folgenden Befehl aus, um die generierten Dateien „authorized_keys“ und „known_hosts“ von Server1 auf Server2 zu kopieren.

# scp [zu übertragende lokale Datei] [Benutzername des Remote-Hosts]@IP oder Hostname des Remote-Hosts:[Zielort, an den die Datei übertragen werden soll]
scp /home/guest1/.ssh/authorized_keys guest2@server2:/home/guest2/.ssh/authorized_keys
scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts 

Nachdem der Kopiervorgang abgeschlossen ist, verwenden Sie den folgenden Befehl, um die Dateizugriffsberechtigungen festzulegen.

chmod 700 /home/guest2/.ssh
chmod 600 /home/guest2/.ssh/authorized_keys

Führen Sie dann den Befehl ssh guest1@server1 aus, um sich mit dem Konto guest2 von Server2 ohne Kennwort beim Konto guest1 von Server1 anzumelden.

An diesem Punkt ist die passwortfreie SSH-Anmeldung der beiden Server eingerichtet. Wenn ein Fehler auftritt, überprüfen Sie die obigen Schritte sorgfältig.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Wenn ein Linux (Ubuntu)-Benutzer N-mal hintereinander ein falsches Passwort eingibt, um sich anzumelden, wird das System automatisch für X Minuten gesperrt
  • So installieren Sie binäres MySQL unter Linux und knacken das MySQL-Passwort
  • Root-Passwort in Linux vergessen? Einzelbenutzermodus aktivieren Runlevel wechseln Benutzer wechseln
  • Lösung zum Vergessen des Passworts des Pagodenpanels in Linux 3.X/4.x/5.x

<<:  MySQL 8.0.12 Installations- und Konfigurations-Tutorial

>>:  Einfache und schnelle Einführung in die React-Routing-Entwicklung

Artikel empfehlen

Fabric.js implementiert DIY-Postkartenfunktion

In diesem Artikel wird der spezifische Code von F...

Bringen Sie Ihnen bei, ein einfaches Versprechen Schritt für Schritt umzusetzen

Inhaltsverzeichnis Schritt 1: Erstellen Sie das F...

Vergleich der Effizienz der Dateneinfügung in MySQL

Beim Einfügen von Daten stellte ich fest, dass ic...

Gängige Methoden und Probleme der Docker-Bereinigung

Wenn Sie Docker für die Entwicklung im großen Maß...

JS realisiert Video-Sperreffekt

Verwenden Sie um dies zu erreichen, die modulare ...

13 JavaScript-Einzeiler, die Sie wie einen Experten aussehen lassen

Inhaltsverzeichnis 1. Holen Sie sich einen zufäll...

Allgemeine Befehle für MySQL-Autorisierung, Start und Dienststart

1. Vier Startmethoden: 1.mysqld Starten Sie den M...

Serviceverwaltung der Quellpaketinstallation unter Linux

Inhaltsverzeichnis 1. Startverwaltung des Quellpa...

TimePicker im Element deaktiviert einen Teil der Zeit (deaktiviert auf Minuten)

Die Projektanforderungen lauten: Datum und Uhrzei...

JavaScript-Interview: So implementieren Sie die Methode zur Array-Abflachung

Inhaltsverzeichnis 1. Was ist Array-Flattening? 2...