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

Einrichtung der SSH-schlüsselbasierten Authentifizierung von openSSH zu SSH2

Die vorherigen Artikel (Setup von openSSH zu openSSH, Setup von SSH2 zu SSH2) erklären, wie man die schlüsselbasierte Authentifizierung einrichtet die gleiche Version von ssh, um ssh und scp auszuführen, ohne ein Passwort einzugeben. Dieser Artikel erklärt, wie Sie die SSH-Schlüssel-basierte Authentifizierung zwischen verschiedenen SSH-Versionen (von openSSH bis SSH2) einrichten, um ssh und scp ohne Passworteingabe auszuführen.

1. Überprüfen Sie die SSH-Version des lokalen Hosts und des Remote-Hosts.

In diesem Beispiel läuft local-host auf openSSH und remote-host läuft auf SSH2.

[local-host]$ ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007

[remote-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
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2

2. Generieren Sie das Schlüsselpaar auf dem lokalen Host mit ssh-keygen

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
3b:2a:d2:ac:8c:71:81:7e:b7:31:21:11:b8:e8:31:ad jsmith@local-host

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

Standardmäßig generiert ssh-keygen auf openSSH ein RSA-Schlüsselpaar. Sie können auch ein DSA-Schlüsselpaar generieren mit:ssh-keygen -t dsa Befehl.

3. Konvertieren Sie den öffentlichen OpenSSH-Schlüssel in den öffentlichen SSH2-Schlüssel.

Konvertieren Sie auf dem lokalen Host, auf dem openSSH ausgeführt wird, den öffentlichen openSSH-Schlüssel mithilfe von ssh-keygen wie unten gezeigt in den öffentlichen SSH2-Schlüssel.

[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub

4. Installieren Sie den öffentlichen Schlüssel auf dem Remote-Host, auf dem SSH2 ausgeführt wird.

Erstellen Sie eine neue öffentliche Schlüsseldatei auf dem Remote-Host und kopieren und fügen Sie den konvertierten SSH2-Schlüssel vom lokalen Host ein.

[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub 
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host"
DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI
3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU
YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ
LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP
LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8
a7cQuMS178i9eDBEC==
---- END SSH2 PUBLIC KEY ----

Fügen Sie den obigen Dateinamen des öffentlichen Schlüssels wie unten gezeigt zur Autorisierungsdatei auf dem Remote-Host hinzu.

[remote-host]$ vi ~/.ssh2/authorization 
Key local-host_ssh2_key.pub

5. Überprüfen Sie die Anmeldung vom lokalen Host zum Remote-Host mithilfe der SSH2-Schlüsselauthentifizierung.

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
The authenticity of host 'local-host' can't be established.
DSA key fingerprint is a5:f6:2e:e6:a9:b2:7b:0e:e7:ae:cb:6c:7b:f5:6d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'local-host' (DSA) to the list of known hosts.
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <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.

6. Starten Sie den SSH-Agenten auf local-host

Der SSH-Agent wird im Hintergrund ausgeführt, um die privaten Schlüssel zu speichern und ssh und scp auszuführen, ohne die Passphrase mehrmals eingeben zu müssen.

[local-host]$ ssh-agent $SHELL

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

[local-host]$ ssh-add
Enter passphrase for /home/jsmith/.ssh/id_rsa:<Enter your passphrase here>
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

8. 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>

Linux
  1. Ssh – Der Unterschied zwischen einem Openssh-Schlüssel und einem Putty-Schlüssel?

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

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

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

  5. So führen Sie SSH und SCP ohne Passwort von SSH2 zu OpenSSH durch

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

SSH-Befehl

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

So richten Sie die passwortlose SSH-Anmeldung in AlmaLinux ein

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

Führen Sie SSH und SCP ohne Passworteingabe auf openSSH aus