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

Umfassender Leitfaden für die Einrichtung der SSH2-schlüsselbasierten Authentifizierung

Ich habe zuvor erklärt, wie man SSH und SCP durchführt, ohne ein Passwort auf openSSH einzugeben. In diesem Artikel erkläre ich, wie man die schlüsselbasierte Authentifizierung auf SSH2 einrichtet und führen Sie SSH/SCP aus, ohne ein Passwort einzugeben, indem Sie die folgenden 10 Schritte verwenden.
1. Stellen Sie sicher, dass auf dem lokalen Host und dem Remote-Host SSH2 ausgeführt wird. Bitte beachten Sie, dass ssh und scp ein symbolischer Link zu ssh2 bzw. scp2 sind, wie unten gezeigt.

[local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[local-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

[remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
[remote-host]$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu


2. Generieren Sie das Schlüsselpaar auf dem lokalen Host mit ssh-keygen2. Typischerweise ist ssh-keygen ein Softlink zu ssh-keygen2, wie unten gezeigt.

[local-host]$ ls -l /usr/local/bin/ssh-keygen
lrwxrwxrwx  1 root root 11 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2

[local-host]$ ssh-keygen
Generating 2048-bit dsa key pair
2 oOo.oOo.oOo.
Key generated.
2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700
Passphrase :<Enter the passphrase>
Again      :
Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b
Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.pub

Der öffentliche Schlüssel und der private Schlüssel werden im Ordner .ssh2 in Ihrem Home-Verzeichnis gespeichert. In diesem Beispiel befindet es sich unter /home/jsmith/.ssh2. Sie sollten den privaten Schlüssel mit niemandem teilen.

Standardmäßig generiert ssh-keygen2 ein DSA-Schlüsselpaar. Sie können auch ein RSA-Schlüsselpaar generieren mit:ssh-keygen -t rsa Befehl.
3. Geben Sie dem .ssh2-Verzeichnis die richtige Berechtigung wie unten gezeigt.

[local-host]$ chmod 755 ~/.ssh2/
[local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub
[local-host]$ chmod 644 ~/.ssh2/authorization

4. Identifizieren Sie den privaten Schlüssel auf dem Client-Rechner. Fügen Sie auf dem lokalen Host den privaten Schlüssel wie unten gezeigt zur SSH2-Identifikationsdatei hinzu. Wenn die Identifikationsdatei nicht vorhanden ist, erstellen Sie eine neue Datei. Wenn die Datei vorhanden ist, fügen Sie den Dateinamen des privaten Schlüssels, der im obigen Schritt generiert wurde, an die Identifikationsdatei in „IdKey {private-key file-name} ” wie unten gezeigt formatieren.

[local-host]$ cat /home/jsmith/.ssh2/identification
IdKey id_dsa_2048_a
IdKey id_dsa_2048_b

5. Kopieren Sie den öffentlichen Schlüssel nach remote-host.

Kopieren Sie die Datei /home/jsmith/.ssh2/id_dsa_2048_b.pub vom lokalen Host auf den Remote-Host /home/jsmith/.ssh2/id_dsa_2048_b.pub. Sie können ein vi /home/jsmith/.ssh2/id_dsa_2048_b.pub auf dem entfernten Host ausführen und den Inhalt des öffentlichen Schlüssels vom lokalen Host kopieren.

[remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub
---- BEGIN SSH2 PUBLIC KEY ----
Subject: jsmith
Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:\
20 -0700"
BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0
S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa
HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms
q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL
IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II
vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk

3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo
rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ
YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO
Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/
Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0
ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU
woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv
+hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6
wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/
8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c=
---- END SSH2 PUBLIC KEY ----

6. Autorisierungsdatei auf dem Remote-Host erstellen Wie nachfolgend dargestellt. Diese Autorisierungsdatei sollte den Namen des öffentlichen Schlüssels enthalten, der wie im vorherigen Schritt erwähnt vom lokalen Host auf den Remote-Host kopiert wurde. Bitte beachten Sie, dass das Format dieser Datei „Schlüssel {Dateiname des öffentlichen Schlüssels} ist „.

[remote-host]$ cat /home/jsmith/.ssh2/authorization
Key id_dsa_2048_b.pub

7. Melden Sie sich vom lokalen Host zum Remote-Host an, indem Sie die SSH2-Schlüsselauthentifizierung verwenden, um zu überprüfen, ob sie ordnungsgemäß funktioniert.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": <Enter your passphrase here>
Last login: Sat Jun 21 2008 23:13:00 -0700 from 192.168.1.102
No mail.
[remote-host]$ <You are on remote-host here>

Es gibt zwei Möglichkeiten, ssh und scp auszuführen, ohne das Passwort einzugeben:

  1. Keine Passphrase. Lassen Sie beim Erstellen des Schlüsselpaars die Passphrase leer. Verwenden Sie diese Option für die automatisierte Stapelverarbeitung. für z.B. Wenn Sie einen Cron-Job ausführen, um Dateien zwischen Computern zu kopieren, ist dies eine geeignete Option. Sie können die nächsten Schritte für diese Methode überspringen.
  2. Passphrase und SSH-Agent verwenden. Wenn Sie ssh und scp interaktiv von der Befehlszeile aus verwenden und das Passwort nicht jedes Mal verwenden möchten, wenn Sie ssh oder scp ausführen, empfehle ich die vorherige Option (keine Passphrase) nicht, da Sie eine Ebene eliminiert haben Sicherheit bei der ssh-schlüsselbasierten Authentifizierung. Verwenden Sie stattdessen die Passphrase beim Erstellen des Schlüsselpaars und verwenden Sie den SSH-Agenten, um ssh und scp auszuführen, ohne jedes Mal das Passwort eingeben zu müssen, wie in den folgenden Schritten erläutert.

8. Starten Sie den SSH-Agenten auf local-host, um ssh und scp auszuführen, ohne die Passphrase mehrmals eingeben zu müssen.

[local-host]$ ssh-agent $SHELL

9. Laden Sie den privaten Schlüssel in den SSH-Agenten auf dem lokalen Host.

[local-host]$ ssh-add
Adding identity: /home/jsmith/.ssh2/id_dsa_2048_b.pub
Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2008 23:10:20 -0700).
Enter passphrase: <Enter your passphrase here>

10. Führen Sie SSH oder SCP zum Remote-Home vom lokalen Host aus, ohne das Passwort einzugeben.

[local-host]$<You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail.
<ssh did not ask for passphrase this time>
[remote-host]$ <You are on remote-host here>

Bitte hinterlassen Sie Ihre Kommentare und Ihr Feedback zu diesem Artikel. Wenn Ihnen dieser Beitrag gefällt, würde ich mich sehr freuen, wenn Sie The Geek Stuff abonnieren könnten.


Linux
  1. Wie verwende ich Sftp auf einem System, das Sudo für Root-Zugriff und SSH-Schlüssel-basierte Authentifizierung benötigt?

  2. Konvertieren Sie den privaten Openssh-Schlüssel in den privaten Ssh2-Schlüssel?

  3. Importieren Sie den SSH-Schlüssel als Gpg-Unterschlüssel zur Verwendung für die SSH-Authentifizierung?

  4. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter Linux ein

  5. So richten Sie SSH-Schlüssel für die SSH-Anmeldung mit „öffentlichen/privaten Schlüsseln“ unter Linux ein

Bash For Loop Guide und Beispiele

So richten Sie die Multi-Faktor-Authentifizierung für SSH unter Linux ein

Wie richte ich die ssh-schlüsselbasierte Authentifizierung für Github mithilfe der Datei ~/.ssh/config ein?

Wie richte ich die Zwei-Faktor-Authentifizierung für WHM ein?

Einfache FileZilla-Einrichtungsanleitung für cPanel

Midnight Commander (mc) Guide:Leistungsstarker textbasierter Dateimanager für Unix