GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So generieren und richten Sie SSH-Schlüssel unter CentOS 7 ein

Einführung

Sichere Shell (SSH ) ist ein verschlüsseltes Protokoll, das von Linux-Benutzern verwendet wird, um sich mit ihren Remote-Servern zu verbinden.

Im Allgemeinen gibt es zwei Möglichkeiten für Clients, auf ihre Server zuzugreifen – über eine passwortbasierte Authentifizierung oder eine auf einem öffentlichen Schlüssel basierende Authentifizierung.

Die Verwendung von SSH-Schlüsseln zur Authentifizierung wird als sicherere Alternative zu Passwörtern dringend empfohlen.

Dieses Tutorial führt Sie durch die Schritte zum Generieren und Einrichten von SSH-Schlüsseln unter CentOS 7. Wir behandeln auch das Herstellen einer Verbindung zu einem Remote-Server mithilfe der Schlüssel und das Deaktivieren der Kennwortauthentifizierung .

Bevor Sie beginnen

1. Auf vorhandene Schlüssel prüfen

Vor jeder Installation ist es ratsam zu prüfen, ob auf den Client-Rechnern irgendwelche Schlüssel vorhanden sind.

Öffnen Sie das Terminal und listen Sie alle gespeicherten öffentlichen Schlüssel mit dem folgenden Befehl auf:

ls -l ~/.ssh/id_*.pub

Die Ausgabe informiert Sie über alle generierten Schlüssel, die sich derzeit auf dem System befinden. Wenn keine vorhanden sind, teilt Ihnen die Meldung mit, dass auf /.ssh/id_*.pub nicht zugegriffen werden kann , da es keine solche Datei oder kein Verzeichnis gibt.

2. Überprüfen Sie, ob SSH installiert ist

Um zu überprüfen, ob das Paket installiert ist, führen Sie den folgenden Befehl aus:

ssh -V

Wenn Sie bereits SSH haben, zeigt Ihnen die Ausgabe, welche Version ausgeführt wird. Derzeit ist die neueste Version OpenSSH 8.0/8.0p1 .

Schritte zum Erstellen von SSH-Schlüsseln auf CentOS

Schritt 1:SSH-Schlüsselpaar erstellen

1. Melden Sie sich zunächst beim Quellcomputer (lokaler Server) an und erstellen Sie ein 2048-Bit-RSA-Schlüsselpaar mit dem Befehl:

ssh-keygen -t rsa

Wenn Sie die Sicherheitsmaßnahmen verschärfen möchten, können Sie einen 4096-Bit-Schlüssel erstellen durch Hinzufügen des Flags -b 4096:

ssh-keygen -t rsa -b 4096

2. Nach Eingabe des Befehls sollten Sie die folgende Eingabeaufforderung sehen:

Generating public/private rsa key pair.
Enter file in which to save the key (home/your_username/.ssh/id_rsa):

3. Um die Datei im vorgeschlagenen Verzeichnis zu speichern, drücken Sie Enter . Alternativ können Sie einen anderen Speicherort angeben.

4. Als nächstes wird die Eingabeaufforderung fortgesetzt mit:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Obwohl das Erstellen einer Passphrase nicht obligatorisch ist, wird es dringend empfohlen.

5. Schließlich endet die Ausgabe mit der Angabe der folgenden Informationen:

Your identification has been saved in home/your_username/.ssh/id_rsa.
Your public key has been saved in home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk
[email protected]
The key's randomart image is:
+------[RSA 3072]-------+
|       .oo.            |
|        +o+.           |
|      + +.+            |
| o  +          S .     |
|      .    E  .   . =.o|
|    .  +       .   [email protected]|
|        +   .     oo*=O|
|   oo            . .+o+|
|                 o=ooo=|
+------ [SHA256] ------+

Jetzt müssen Sie den öffentlichen Schlüssel zum Remote-CentOS-Server hinzufügen.

Schritt 2:Kopieren Sie den öffentlichen Schlüssel auf den CentOS-Server

Sie können den öffentlichen SSH-Schlüssel mithilfe verschiedener Methoden auf den Remote-Server kopieren:

  1. mit dem Skript ssh-copy-id
  2. mit Secure Copy (scp)
  3. Schlüssel manuell kopieren

Die schnellste und einfachste Methode ist die Verwendung von ssh-copy-id . Wenn die Option verfügbar ist, empfehlen wir, sie zu verwenden. Probieren Sie andernfalls einen der beiden anderen angegebenen aus.

Öffentlichen Schlüssel mit ssh-copy-id kopieren

1. Beginnen Sie mit der Eingabe des folgenden Befehls und geben Sie das SSH-Benutzerkonto und die IP-Adresse des Remote-Hosts an:

ssh-copy-id [email protected]_host

Wenn Ihr lokaler Computer zum ersten Mal auf diesen bestimmten Remote-Server zugreift, erhalten Sie die folgende Ausgabe:

The authenticity of host '104.0.316.1 (104.0.316.1)' can't be established.
ECDSA key fingerprint is KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk.
Are you sure you want to continue connecting (yes/no)? yes

2. Bestätigen Sie die Verbindung – geben Sie yes ein und drücken Sie Enter .

3. Sobald es den Schlüssel id_rsa.pub key gefunden hat auf dem lokalen Computer erstellt wurde, werden Sie aufgefordert, das Kennwort für das Remote-Konto anzugeben. Geben Sie das Passwort ein und drücken Sie Enter .

4. Sobald die Verbindung hergestellt wurde, fügt es den öffentlichen Schlüssel auf dem Remote-Server hinzu. Kopieren Sie dazu die Datei ~/.ssh/id_rsa.pub Datei in ~/.ssh des Remote-Servers Verzeichnis. Sie finden es unter dem Namen authorized_keys .

5. Zuletzt teilt Ihnen die Ausgabe die Anzahl der hinzugefügten Schlüssel mit, zusammen mit klaren Anweisungen, was als nächstes zu tun ist:

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.

Öffentlichen Schlüssel mit Secure Copy kopieren

1. Richten Sie zunächst eine SSH-Verbindung mit dem Remote-Benutzer ein:

ssh [email protected]_host

2. Als nächstes erstellen Sie ~/.ssh Verzeichnis sowie die authorized_keys Datei:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

3. Verwenden Sie chmod Befehl zum Ändern der Dateiberechtigung:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

chmod 700 macht die Datei ausführbar , während chmod 600 ermöglicht dem Benutzer das Lesen und Schreiben die Datei.

4. Öffnen Sie nun eine neue Terminalsitzung auf dem lokalen Computer.

5. Kopieren Sie den Inhalt von id_rsa.pub key (der öffentliche SSH-Schlüssel) zu den zuvor erstellten authorized_keys Datei auf dem Remote-CentOS-Server, indem Sie den folgenden Befehl eingeben:

scp ~/.ssh/id_rsa.pub [email protected]_host:~/.ssh/authorized_keys

Damit ist der öffentliche Schlüssel sicher auf dem entfernten Konto gespeichert.

Kopieren Sie den öffentlichen Schlüssel manuell

1. Um den öffentlichen SSH-Schlüssel manuell zum Remote-Computer hinzuzufügen, müssen Sie zuerst den Inhalt von ~/.ssh/id_rsa.pub öffnen Datei:

cat ~/.ssh/id_rsa.pub

2. Wie in der Abbildung unten beginnt der Schlüssel mit ssh-rsa und endet mit dem Benutzernamen des lokalen Computers und dem Hostnamen des Remote-Computers:


3. Kopieren Sie den Inhalt der Datei, da Sie ihn später benötigen.

4. Verbinden Sie sich dann im Terminalfenster mit dem entfernten Server, auf den Sie den öffentlichen Schlüssel kopieren möchten. Verwenden Sie den folgenden Befehl, um die Verbindung herzustellen:

ssh [email protected]_host

5. Erstellen Sie ein ~/.ssh-Verzeichnis und authorized_keys Datei auf dem CentOS-Server mit folgendem Befehl:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

6. Ändern Sie ihre Dateiberechtigung, indem Sie Folgendes eingeben:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

7. Als nächstes öffnen Sie authorized_keys Datei mit einem Editor Ihrer Wahl. Um es beispielsweise mit Nano zu öffnen, geben Sie Folgendes ein:

nano authorized_keys

8. Fügen Sie den zuvor in Schritt 2 kopierten öffentlichen Schlüssel hinzu dieses Abschnitts in einer neuen Zeile (unter dem bestehenden Inhalt).

9. Speichern Sie die Änderungen und schließen Sie die Datei.

10. Melden Sie sich schließlich beim Server an, um zu überprüfen, ob alles richtig eingerichtet ist.

Schritt 3:Mit SSH-Schlüsseln Verbindung zum Remote-Server herstellen

Sobald Sie die vorherigen Schritte abgeschlossen haben (Erstellen eines RSA-Schlüsselpaars und Kopieren des öffentlichen Schlüssels auf den CentOS-Server), können Sie sich mit dem Remote-Host verbinden, ohne das Passwort für das Remote-Konto einzugeben.

Sie müssen lediglich den folgenden Befehl eingeben:

ssh [email protected]_host

Wenn Sie beim Erstellen des SSH-Schlüsselpaars keine Passphrase angegeben haben, werden Sie automatisch beim Remote-Server angemeldet.

Geben Sie andernfalls die Passphrase ein, die Sie in den ersten Schritten angegeben haben, und drücken Sie die Eingabetaste .

Sobald die Shell die Schlüsselübereinstimmung bestätigt, öffnet sie eine neue Sitzung für die direkte Kommunikation mit dem Server.

Schritt 4:Passwort-Authentifizierung deaktivieren

Obwohl Sie es geschafft haben, auf den CentOS-Server zuzugreifen, ohne ein Passwort angeben zu müssen, läuft auf dem Computer immer noch ein passwortbasiertes Authentifizierungssystem. Dies macht es zu einem potenziellen Ziel für Brute-Force-Angriffe.

Sie sollten die Passwortauthentifizierung vollständig deaktivieren, indem Sie die beschriebenen Schritte befolgen.

1. Melden Sie sich mit den SSH-Schlüsseln beim Remote-CentOS-Server an, der über Administratorrechte verfügt:

ssh [email protected]_host

2. Öffnen Sie als Nächstes die Konfigurationsdatei des SSH-Daemons mit einem Texteditor Ihrer Wahl:

sudo nano /etc/ssh/sshd_config

3. Suchen Sie in der Datei nach folgender Zeile:

PasswordAuthentication yes

4. Bearbeiten Sie die Konfiguration, indem Sie yes ändern Wert auf no . Daher sollte die Direktive wie folgt lauten:

PasswordAuthentication no

5. Speichern Sie die Datei und beenden Sie den Texteditor.
6. Um die Änderungen zu aktivieren, starten Sie sshd neu Dienst mit dem Befehl:

sudo systemctl restart sshd.service

7. Stellen Sie sicher, dass die SSH-Verbindung zum Server noch ordnungsgemäß funktioniert. Öffnen Sie ein neues Terminalfenster und geben Sie den Befehl ein:

ssh [email protected]_host

Cent OS
  1. So richten Sie SSH-Schlüssel ein

  2. SSH-Schlüssel auf CentOS 7 einrichten - Schritt-für-Schritt-Prozess?

  3. So richten Sie SSH-Schlüssel unter CentOS 8 ein

  4. So richten Sie SSH-Schlüssel unter Ubuntu 16.04 ein

  5. So richten Sie SSH-Schlüssel unter Ubuntu 18.04 ein

So richten Sie SSH-Schlüssel unter Debian 9 ein

So richten Sie SSH-Schlüssel unter Debian 10 ein

Wie richte ich SSH-Schlüssel ein – Windows-Betriebssystem?

So generieren Sie einen SSH-Schlüssel in CentOS 8

So richten Sie einen SSH-Schlüssel auf einem Plesk-Server ein

So richten Sie SSH-Schlüssel unter Debian 11 Linux ein