Linux-Konfiguration SSH passwortfreie Anmeldung "ssh-keygen" grundlegende Nutzung

Linux-Konfiguration SSH passwortfreie Anmeldung "ssh-keygen" grundlegende Nutzung

1 Was ist SSH

Zitat aus der Baidu-Enzyklopädie:

SSH ist die Abkürzung für Secure Shell, das von der Network Working Group der IETF entwickelt wurde. Es handelt sich um ein Sicherheitsprotokoll auf Anwendungsebene.

SSH ist derzeit das zuverlässigste Protokoll zur Gewährleistung der Sicherheit von Remote-Anmeldesitzungen und anderen Netzwerkdiensten. Durch die Verwendung des SSH-Protokolls können Informationslecks während der Fernverwaltung wirksam verhindert werden.

SSH war ursprünglich ein Programm auf UNIX-Systemen und wurde später schnell auf andere Betriebssystemplattformen ausgeweitet.

Um die Sicherheit der Kommunikation zwischen verschiedenen Plattformen/Netzwerkhosts zu gewährleisten, müssen wir uns häufig über SSH authentifizieren. Es gibt zwei Hauptmethoden für die SSH-Authentifizierung:

① Kennwortbasierte Sicherheitsauthentifizierung: Bei jeder Anmeldung müssen Sie Ihren Benutzernamen und Ihr Kennwort eingeben. Da das Kennwort über das Netzwerk übertragen werden muss, besteht möglicherweise die Gefahr eines Man-in-the-Middle-Angriffs.
② Schlüsselbasierte Sicherheitsauthentifizierung: Nach Abschluss der Konfiguration können Sie sich ohne Kennwort anmelden. Diese Methode ist sicherer - es ist nicht erforderlich, im Netzwerk ein Kennwort weiterzugeben, sondern nur einmal den öffentlichen Schlüssel zu übertragen. Die gängige Git-SSH-Methode wird durch den öffentlichen Schlüssel authentifiziert.

2 Konfigurieren Sie die passwortfreie SSH-Anmeldung

Hinweis: Das in dieser Demonstration verwendete Serverbetriebssystem ist Cent OS 7. Unsere Ziele sind:

Server A (172.16.22.131) kann sich ohne Passwort bei Server B (172.16.22.132) anmelden.

Hinweis: Die SSH-Verbindung ist einseitig, A kann sich ohne Kennwort bei B anmelden, B kann sich jedoch nicht gleichzeitig ohne Kennwort bei A anmelden.

2.1 Erforderliche Software installieren

Stellen Sie vor dem Betrieb sicher, dass die erforderliche Software ordnungsgemäß installiert wurde.

Hier müssen wir ssh-keygen und ssh-copy-id installieren. Die Installationsmethode ist wie folgt:

# Installieren Sie ssh-keygen. Stellen Sie sicher, dass der Server eine Verbindung zum Internet herstellen kann. Ich habe es bereits installiert, daher muss ich nichts tun.
[root@localhost ~]# yum install -y ssh-keygen
Geladene Plugins: fastestmirror, langpacks
Basis | 3,6 kB 00:00:00  
epel | 3,6 kB 00:00:00  
Extras | 2,9 kB 00:00:00  
Aktualisierungen | 2,9 kB 00:00:00  
Spiegelgeschwindigkeiten aus zwischengespeicherter Hostdatei laden
Kein Paket ssh-keygen verfügbar.
Fehler: Nichts zu tun

# Installieren Sie ssh-copy-id
[root@localhost ~]# yum install -y ssh-copy-id 
Geladene Plugins: fastestmirror, langpacks
Spiegelgeschwindigkeiten aus zwischengespeicherter Hostdatei laden
Kein Paket „ssh-copy-id“ verfügbar.
Fehler: Nichts zu tun

2.2 ssh-keygen erstellt ein öffentlich-privates Schlüsselpaar

(1) Generieren Sie einen RSA-Schlüssel im angegebenen Verzeichnis und geben Sie den Kommentar als "shoufeng" an. Implementierungsbeispiel:

[root@localhost ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "shoufeng"
# ~Schlüsseltyp~Pfad und Name der Schlüsseldatei~Anmerkungen: Generieren eines öffentlichen/privaten RSA-Schlüsselpaars.
Geben Sie die Passphrase ein (leer, wenn keine Passphrase vorhanden ist): # Geben Sie das Passwort ein, oder drücken Sie die Eingabetaste, wenn Sie es nicht eingeben möchten. Geben Sie die gleiche Passphrase erneut ein: # Bestätigen Sie das Passwort erneut, oder drücken Sie die Eingabetaste, wenn Sie es nicht eingeben möchten. Ihre Identifikation wurde unter /root/.ssh/id_rsa gespeichert.
Ihr öffentlicher Schlüssel wurde in /root/.ssh/id_rsa.pub gespeichert.
Der Schlüsselfingerabdruck ist:
9a:e3:94:b9:69:c8:e9:68:4b:dc:fa:43:25:7f:53:f1 shoufeng
Das Randomart-Bild des Schlüssels ist:
+--[RSA 2048]----+
| |
| . |
| o |
| . . . E |
| + S. |
| . .. .=o |
|oo.oB. . |
| ..o=o.+ |
| .++oo+ |
+-----------------+

Hinweis: Der Schlüsseldateiname muss id_xxx sein, wobei xxx der durch den Parameter -t angegebene Schlüsseltyp ist. Wenn der Schlüsseltyp beispielsweise rsa ist, muss der Schlüsseldateiname id_rsa sein.

(2) Beschreibung der allgemeinen Parameter von ssh-keygen:

-t: Schlüsseltyp, Sie können dsa | ecdsa | ed25519 | rsa wählen;

-f: Speicherort des Schlüsselverzeichnisses, standardmäßig ist es das versteckte .ssh-Verzeichnis unter dem Home-Pfad des aktuellen Benutzers, also ~/.ssh/, und der Standardname der Schlüsseldatei beginnt mit id_rsa. Wenn es sich um den Root-Benutzer handelt, befindet es sich in /root/.ssh/id_rsa, wenn es sich um andere Benutzer handelt, befindet es sich in /home/username/.ssh/id_rsa;

-C: Gibt die Anmerkungsinformationen dieses Schlüssels an. Es wird empfohlen, diese Option zu verwenden, wenn Sie mehrere passwortfreie Anmeldungen konfigurieren müssen.

-N: Gibt das Passwort für dieses Schlüsselpaar an. Wenn dieser Parameter angegeben ist, gibt es während der Befehlsausführung keine interaktiven Bestätigungspasswortinformationen.

Beispiel: Geben Sie den Verzeichnisspeicherort, das Kennwort und die Kommentarinformationen gleichzeitig an. Sie müssen nicht die Eingabetaste drücken, um die Erstellung abzuschließen:

ssh-keygen -t rsa -f ~/.ssh/id_rsa -N shoufeng -C shoufeng

(3) Wechseln Sie zum Verzeichnis ~/.ssh/, um die generierten Dateien anzuzeigen:

# Die generierte Datei beginnt mit test_rsa, test_rsa ist der private Schlüssel, test_rsa.pub ist der öffentliche Schlüssel:
[root@localhost .ssh]# ls
test_rsa test_rsa.pub

# Zeigen Sie die öffentliche Schlüsseldatei mit dem Befehl „cat“ an: 
[root@localhost .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1OvS/nyKaOr9D8yq/FxfwKqK7TzJM0cVBAG7+YR8lc9tJTCypmNXNngiSlipzjBcnfT+5VtcFSENfuJd60dmZDzrQTxGFSS2J34CuczTQSsItmYF3DyhqmrXL+cJ2vjZWVZRU6IY7BpqJFWwfYY9m8KaL0PZ+JJuaU7ESVBXf6HJcQhYPp2bTUyff+vdV shoufeng
# Sie können sehen, dass am Ende ein Kommentar steht shoufeng

2.3 ssh-copy-id sendet A's öffentlichen Schlüssel an B

Die Standardverwendung ist: ssh-copy-id [email protected]. Der Standardport des Befehls ssh-copy-id bei der Verbindung mit dem Remote-Server ist 22. Natürlich können Sie die Datei, die IP des Remote-Hosts, den Benutzer und den Port angeben:

# Geben Sie die zu kopierende lokale Datei sowie die IP-Adresse+Benutzername+Portnummer des Remote-Hosts an:
[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]
/usr/bin/ssh-copy-id: INFO: Versuch, sich mit den neuen Schlüsseln anzumelden, um alle bereits installierten herauszufiltern
/usr/bin/ssh-copy-id: INFO: 1 Schlüssel muss noch installiert werden -- wenn Sie jetzt dazu aufgefordert werden, installieren Sie die neuen Schlüssel
[email protected]'s Passwort: # Nach Eingabe des Passwortes wird der öffentliche Schlüssel kopiert Anzahl der hinzugefügten Schlüssel: 1

Versuchen Sie nun, sich mit „ssh -p ‚22‘ ‚[email protected]‘“ bei der Maschine anzumelden.
und überprüfen Sie, ob nur die gewünschten Schlüssel hinzugefügt wurden.

2.4 Melden Sie sich von Server A ohne Passwort bei Server B an

[root@localhost .ssh]# ssh [email protected]
Letzte Anmeldung: Fr 14. Jun 08:46:04 2019 von 192.168.34.16 # Anmeldung erfolgreich😄

3 Erweiterte Beschreibung

3.1 Andere Möglichkeiten zum Senden öffentlicher Schlüsseldateien

Der obige Schritt 2.3 besteht darin, die öffentliche Schlüsseldatei über das Tool ssh-copy-id zu senden. Natürlich können wir dies auch auf andere Weise erreichen:

(1) Senden Sie die öffentliche Schlüsseldatei von A an B:

Verwenden Sie den Befehl scp, um die öffentliche Schlüsseldatei von Server A in das Benutzerverzeichnis von Server B zu senden. Da die passwortfreie Anmeldung nicht erfolgreich konfiguriert wurde, müssen Sie das Passwort des entsprechenden Benutzers von Server B eingeben:

[root@localhost .ssh]# scp id_rsa.pub [email protected]:/root/.ssh 
Passwort von [email protected]: 
id_rsa.pub 100% 390 0,4KB/s 00:00

(2) Erstellen Sie die Datei authorized_keys auf B:

[root@localhost .ssh]# cd /root/.ssh/
[root@localhost .ssh]# ls
id_rsa.pub
# Generieren Sie die Datei „authorized_keys“ mit dem öffentlichen Schlüssel von Server A:
[root@localhost .ssh]# cat id_rsa.pub >> autorisierte Schlüssel
[root@localhost .ssh]# cat autorisierte_schlüssel 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1OvS/nyKaOr9D8yq/FxfwKqK7TzJM0cVBAG7+YR8lc9tJTCypmNXNngiSlipzjBcnfT+5VtcFSENfuJd60dmZDzrQTxGFSS2J34CuczTQSsItmYF3DyhqmrXL+cJ2vjZWVZRU6IY7BpqJFWwfYY9m8KaL0PZ+JJuaU7ESVBXf6HJcQhYPp2bTUyff+vdV shoufeng

Hinweis: Verwenden Sie >>, um die obige Umleitung anzuhängen. Verwenden Sie nicht >, da dadurch der ursprüngliche Inhalt gelöscht wird.

3.2 Dateiberechtigungen

Damit die private und die öffentliche Schlüsseldatei bei der Authentifizierung funktionieren, müssen Sie die Richtigkeit der Berechtigungen sicherstellen:

① Für das .ssh-Verzeichnis und die darin enthaltenen öffentlichen und privaten Schlüsseldateien muss der aktuelle Benutzer mindestens über Ausführungsberechtigungen verfügen, andere Benutzer können höchstens über Ausführungsberechtigungen verfügen.

② Setzen Sie die Berechtigungen der Einfachheit halber nicht auf 777: Zu viele Berechtigungen sind unsicher und digitale Signaturen unterstützen diese Berechtigungsstrategie nicht.

③ Für normale Benutzer wird empfohlen, die Berechtigung auf 600 zu setzen: chmod 600 authorized_keys id_rsa id_rsa.pub;

④ Für den Root-Benutzer wird empfohlen, die Berechtigung auf 644 zu setzen: chmod 644 authorized_keys id_rsa id_rsa.pub.

3.3 Bearbeiten und Anzeigen von Dateien

Wenn Sie in der Linux-Umgebung private Schlüssel, öffentliche Schlüssel und autorisierte Schlüsseldateien anzeigen oder kopieren möchten, verwenden Sie zum Öffnen keine Editoren wie vim, da dadurch unnötige Wagenrückläufe generiert werden.

Sie sollten „cat“, „more“, „less“ und andere Anzeigebefehle verwenden, um den Inhalt auf dem Terminal auszugeben und dann die Anzeige, das Kopieren und andere Vorgänge auszuführen.

Zusammenfassen

Oben ist die vom Herausgeber vorgestellte grundlegende Verwendung von „ssh-keygen“ zum Konfigurieren der passwortfreien SSH-Anmeldung in Linux. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Linux verwendet den öffentlichen SSH-Schlüssel, um ein passwortfreies Anmeldebeispiel zu implementieren
  • Kennwortfreie Konfigurationsmethode für die Remote-Anmeldung über SSH unter Linux
  • Implementierung der passwortfreien SSH-Anmeldung und Schlüsselverwaltung, Verteilung und Bereitstellung der SHELL-Skriptfreigabe unter Linux

<<:  Die perfekte Lösung für den häufig auftretenden Startfehler bei MySQL mit unzureichendem Arbeitsspeicher

>>:  Einige Details zu Semikolons in JavaScript

Artikel empfehlen

Grundlegendes Lernprogramm zum Tabellen-Tag in HTML

Zusammensetzung der Tabellenbeschriftung Die Tabe...

So erstellen Sie einen pptpd-Dienst in Alibaba Cloud Ubuntu 16.04

1. Um ein PPTP-VPN aufzubauen, müssen Sie Port 17...

So fügen Sie MySQL Indizes hinzu

Hier ist eine kurze Einführung in Indizes: Der Zw...

Bringen Sie Ihnen bei, wie Sie die rekursive Methode von MySQL8 verwenden

Ich habe zuvor einen Artikel über rekursive Abfra...

JavaScript zum Erzielen eines Mauszieheffekts

In diesem Artikel wird der spezifische JavaScript...

Flammenanimation mit CSS3 umgesetzt

Ergebnisse erzielen Implementierungscode html <...

Mehrere Möglichkeiten zum Zentrieren einer Box in der Webentwicklung

1. Notieren Sie mehrere Methoden zum Zentrieren d...

Lösen Sie das Problem des Vergessens von Passwörtern in MySQL 5.7 unter Linux

1. Problem Passwort für mysql5.7 unter Linux verg...

Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Konfigurationsdatei, die beim Systemstart geladen...

So sichern Sie MySQL unter Linux automatisch remote

Vorwort: Ganz gleich, ob wir es für den Eigengebr...