Der Beitrag listet die Schritte zum Einrichten von SSH-Schlüsseln auf, um passwortloses SSH in Linux zu konfigurieren. ssh-keygen ist der Befehl zum Generieren der öffentlichen und privaten Schlüssel, falls Sie dies noch nicht getan haben. Mit dem Befehl ssh-copy-id können wir die Schlüssel auf den Zielserver kopieren, auf dem wir eine passwortlose SSH-Einrichtung haben möchten.
1. Melden Sie sich als der Benutzer an, für den Sie die SSH-Schlüssel einrichten möchten. In diesem Fall verwenden wir den Benutzer sandy.
2. Erstellen Sie einen privaten und öffentlichen Schlüssel für den Benutzer sandy. Drücken Sie zweimal die Eingabetaste, wenn Sie nach der Passphrase gefragt werden, da wir die Passphrase leer lassen werden.
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/sandy/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/sandy/.ssh/id_rsa. Your public key has been saved in /Users/sandy/.ssh/id_rsa.pub. The key fingerprint is: SHA256:Y2lfHXY1+i5Pok1NuhsfZ16JsIrdUzY1699SwlvOHOY [email protected] The key's randomart image is: +---[RSA 2048]----+ | ..| | . o| | .o .| | . o.= | | S ...ooo| | o o .o+O++| | ..oB=#=| | o o.+ @EO| | . o o.+.+=| +----[SHA256]-----+Hinweis :Sie können eine Option auf dem ssh-keygen wie die Größe und den Typ angeben. Weitere Informationen finden Sie auf der Manpage des Befehls ssh-keygen
Aus der Manpage von ssh-keygen :
-b bits Specifies the number of bits in the key to create. For RSA keys, the minimum size is 768 bits and the default is 2048 bits. Generally, 2048 bits is considered sufficient. DSA keys must be exactly 1024 bits as specified by FIPS186-2. -t type Specifies the type of key to create. The possible values are “rsa1” for protocol version 1 and “dsa”, “ecdsa” or “rsa” for protocol version 2.
3. Neue Schlüssel befinden sich unter /home/test1/.ssh. Wechseln Sie in Ihr .ssh-Verzeichnis, in dem der Schlüssel erstellt wurde, überprüfen Sie dies für die Öffentlichkeit
$ cd .ssh $ $ ls -lrt id* -rw-r--r-- 1 sandy staff 414 Oct 20 20:35 id_rsa.pub -rw------- 1 sandy staff 1675 Oct 20 20:35 id_rsa
4.Kopieren Sie den öffentlichen Schlüssel auf den Zielserver.
$ ssh-copy-id -i id_rsa.pub test1@lab02 The authenticity of host 'lab02 (192.168.219.149)' can't be established. RSA key fingerprint is dd:0c:77:26:da:f4:ed:30:64:26:96:29:b3:38:cc:9c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'lab02,192.168.219.149' (RSA) to the list of known hosts. test1@lab02's password:
Bestätigen
1. Versuchen Sie nun, sich mit „ssh ‘test1@lab02′′“ am Computer anzumelden, und überprüfen Sie die Datei ~/.ssh/authorized_keys um sicherzustellen, dass wir keine zusätzlichen Schlüssel hinzugefügt haben, die Sie nicht erwartet haben.
2. Testen Sie Ihren Schlüssel, Sie sollten sich direkt auf Ihrem Zielserver anmelden, ohne nach einem Passwort zu fragen.
$ ssh test1@lab02 [test1@lab02 ~]$
alternative Methode, wenn der Befehl ssh-copy-id nicht verfügbar ist
Wenn Ihr Server nicht über die openssh-clients verfügt Paket installiert ist, können Sie eine alternative Methode verwenden. Sie können den öffentlichen Schlüssel direkt mit dem scp-Befehl kopieren.
$ cat id_rsa.pub | ssh user@lab02 "cat >> ~/.ssh/authorized_keys"