GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den Befehl ssh-keygen, um passwortloses ssh zu konfigurieren

Verwenden Sie das ssh-keygen Befehl zum Generieren eines öffentlichen/privaten Authentifizierungsschlüsselpaars . Authentifizierungsschlüssel ermöglichen es einem Benutzer, eine Verbindung zu einem Remote-System herzustellen, ohne ein Kennwort anzugeben. Schlüssel müssen für jeden Benutzer separat generiert werden. Wenn Sie als Root-Benutzer Schlüsselpaare generieren, kann nur der Root die Schlüssel verwenden.

Generieren von Schlüsseln und Konfigurieren von passwortlosem SSH mit dem Befehl ssh-keygen

1. Verwenden Sie das -t Option zur Angabe des Schlüsseltyps. Beispiel:

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
3a:b8:10:71:b7:ee:66:15:0f:a2:b0:89:ef:65:0b:f0 root@geeklab
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|  . . .          |
|  .o ...o        |
|...+ ...S+       |
|.oo..o .. .      |
| .E + +.         |
|  .= +o.         |
| .. oo.          |
+-----------------+

Verwenden Sie die Option –t, um den Typ des zu erstellenden Schlüssels anzugeben. Mögliche Werte sind
a. „rsa1 ” für Protokollversion 1
b. „dsa “, „ecdsa “ oder „rsa ” für Protokollversion 2.

2. Sie haben die Möglichkeit, eine Passphrase anzugeben, um den privaten Teil des Schlüssels zu verschlüsseln. Wenn Sie Ihren persönlichen Schlüssel verschlüsseln, müssen Sie die Passphrase jedes Mal angeben, wenn Sie den Schlüssel verwenden. Dies verhindert, dass ein Angreifer, der Zugriff auf Ihren privaten Schlüssel hat und sich als Sie ausgeben und auf alle Computer zugreifen kann, auf die Sie Zugriff haben, dies tun kann. Der Angreifer muss immer noch die Passphrase angeben.

3. Der Befehl ssh-key im Beispiel von Schritt 1 generierte zwei Schlüssel im Verzeichnis ~/.ssh:

$ ls ~/.ssh
id_rsa
id_rsa.pub

4. Um sich bei einem Remote-System anzumelden oder Dateien dorthin zu kopieren, ohne ein Kennwort anzugeben, kopieren Sie den öffentlichen Schlüssel (~/.ssh/id_rsa.pub in diesem Beispiel) nach ~/.ssh/authorized_keys auf dem entfernten System. Legen Sie die Berechtigungen für das Remoteverzeichnis ~/.ssh auf 700 fest . Um mehrere Verbindungen zuzulassen, hängen Sie den öffentlichen Schlüssel an die Datei „authorized_keys“ auf dem Remote-System an, anstatt ihn zu kopieren. Das folgende Beispiel hängt den öffentlichen Schlüssel an:

$ cat id_rsa.pub >> authorized_keys

5. Sie können dann die ssh- oder scp-Tools verwenden, um auf das Remote-System zuzugreifen, ohne ein Passwort anzugeben.

Erzwingen der schlüsselbasierten Authentifizierung

1. Sie können die Systemsicherheit noch weiter verbessern, indem Sie die standardmäßige Passwortauthentifizierung deaktivieren und die schlüsselbasierte Authentifizierung erzwingen. Setzen Sie dazu die PasswordAuthentication Option auf nein in der /etc/ssh/sshd_config Konfigurationsdatei wie folgt:

# vi /etc/ssh/sshd_config
PasswordAuthentication no

2. Dies untersagt Benutzer, deren Schlüssel nicht in den authorized_keys enthalten sind Datei des bestimmten Benutzers auf dem Server, um sich über ssh zu verbinden. Die Verbindung wird verweigert und die folgende Meldung erscheint:

$ ssh remote_host
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

3. Einstellen der PasswordAuthentication Option auf Ja , was die Standardeinstellung ist, erlaubt einem Benutzer, ein Passwort zur Authentifizierung zu verwenden.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. Wie verwende ich den basename-Befehl?

  4. So verwenden Sie den id-Befehl unter Linux

  5. So verwenden Sie den Befehl ssh-keygen unter Linux

So verwenden Sie den Linux-Ping-Befehl

So verwenden Sie den nmap-Befehl

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

So verwenden Sie den RPM-Befehl unter Linux