Se gestisci un server Linux, allora sai quanto può essere noioso inserire la password ogni volta che accedi tramite SSH o copiare file utilizzando scp. Questo tutorial introduce l'uso della chiave SSH per ottenere l'accesso senza password SSH e non è necessario inserire una password quando si utilizza scp per copiare i file. Oltre a facilitare l'accesso SSH e la copia dei file SCP, l'accesso senza password SSH aggiunge anche un'altra linea di sicurezza al server Linux.
Passaggi di configurazione dell'accesso senza password SSH
- Innanzitutto, generiamo una coppia di chiavi SSH sul nostro sistema Linux: chiave SSH e chiave pubblica SSH. La chiave è conservata sul proprio sistema Linux.
- Quindi la chiave pubblica viene caricata sul server Linux. Successivamente potremo accedere tramite SSH senza password. Una chiave SSH è come la tua prova d'identità.
1 Genera chiavi SSH e chiavi pubbliche sul tuo sistema Linux
Apri un terminale e utilizza ssh-keygen di seguito per generare la chiave RSA e la chiave pubblica. -t indica il tipo, che significa generare una chiave di crittografia RSA.
ssh-keygen -t rsa
RSA è anche il tipo di crittografia predefinito. Quindi puoi anche semplicemente inserire ssh-keygen. La lunghezza RSA predefinita è 2048 bit. Se sei molto attento alla sicurezza, puoi specificare una lunghezza di 4096 bit.
ssh-keygen -b 4096 -t rsa
Durante il processo di generazione della chiave SSH, ti verrà chiesto di specificare un file per salvare la chiave. Basta premere Invio per utilizzare il file predefinito. Quindi devi inserire una password per crittografare la tua chiave SSH. La password deve essere lunga almeno 20 caratteri. La chiave SSH verrà salvata nel file .ssh/id_rsa nella directory home. La chiave pubblica SSH viene salvata nel file .ssh/id_rsa.pub.
Generating public/private rsa key pair. Enter file in which to save the key (/home/matrix/.ssh/id_rsa): 按Enter键 Enter passphrase (empty for no passphrase): 输入一个密码 Enter same passphrase again: 再次输入密码 Your identification has been saved in /home/matrix/.ssh/id_rsa. Your public key has been saved in /home/matrix/.ssh/id_rsa.pub. The key fingerprint is: e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid The key's randomart image is: +---[RSA 4096]----+ | .. | | . . | | . . .. . | | . . o o.. E .| | o S ..o ...| | = ..+...| | o . . .o .| | .o . | | .++o | +-----------------+
Se guardi il file .ssh/id_rsa, vedrai che questo file è crittografato. Cioè, è crittografato con la password che hai inserito.
less .ssh/id_rsa
2Carica la chiave pubblica SSH sul server Linux
Questo può essere fatto utilizzando il comando ssh-copy-id.
ssh-copy-id username@remote-server
Dopo aver inserito la password dell'utente remoto, la chiave pubblica SSH verrà caricata automaticamente. La chiave pubblica SSH è archiviata nel file .ssh/authorized_keys sul server Linux remoto.
Una volta completato il caricamento, non è necessario inserire nuovamente la password per l'accesso SSH. Tuttavia, quando si utilizza la chiave SSH per accedere per la prima volta, è necessario inserire una volta la password di crittografia della chiave SSH. (Devi inserirlo solo una volta e in futuro verrai loggato automaticamente. Non è più necessario inserire la password per la chiave.)
Non è necessario inserire una password quando si utilizza il comando scp per trasferire file.
Conoscenza chiave SSH
Il sistema Linux ha un programma di gestione dei portachiavi. Il portachiavi è protetto dalla password di accesso dell'utente. Quando accedi al sistema Linux, la password del portachiavi verrà automaticamente sbloccata, consentendoti di accedere al portachiavi. Nel portachiavi è anche possibile memorizzare le password per le chiavi SSH. Pertanto, quando si utilizza una chiave SSH per accedere a un server Linux remoto per la prima volta, è necessario inserire una volta la password della chiave SSH. In futuro non sarà più necessario inserire la password quando si accede tramite chiave SSH. Il programma portachiavi per Ubuntu è Seahorse.
Una chiave SSH è come la tua prova d'identità. Il server Linux remoto utilizza la chiave pubblica SSH che hai generato per crittografare un messaggio e solo la tua chiave SSH può decrittografare il messaggio. Pertanto, se altri non hanno la tua chiave SSH, non saranno in grado di decrittografare il messaggio crittografato e quindi non potranno accedere al tuo server Linux.
Configurare l'accesso senza password SSH è semplicissimo.