Informazioni sulle chiavi SSH
Le chiavi SSH forniscono un modo più sicuro per accedere a un server privato virtuale con SSH rispetto all'utilizzo di una sola password. Mentre una password può eventualmente essere decifrata con un attacco di forza bruta, le chiavi SSH sono quasi impossibili da decifrare con la sola forza bruta. La generazione di una coppia di chiavi fornisce due lunghe stringhe di caratteri:una chiave pubblica e una privata. È possibile posizionare la chiave pubblica su qualsiasi server, quindi sbloccarla collegandosi ad essa con un client che dispone già della chiave privata. Quando i due corrispondono, il sistema si sblocca senza bisogno di una password. Puoi aumentare ulteriormente la sicurezza proteggendo la chiave privata con una passphrase.
Questa guida è stata scritta principalmente dalle persone di DigitalOcean. Dai un'occhiata alle loro fantastiche opzioni di server a costi competitivi su digitalocean.com
Fase uno:crea la coppia di chiavi RSA
Il primo passo è creare la coppia di chiavi sulla macchina client (ci sono buone probabilità che questo sia solo il tuo computer):
ssh-keygen -t rsa
Fase due:archivia le chiavi e la passphrase
Dopo aver inserito il comando Gen Key, riceverai alcune altre domande:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Puoi premere invio qui, salvando il file nella home dell'utente (in questo caso, il mio utente di esempio si chiama demo).
Enter passphrase (empty for no passphrase):
Sta a te decidere se vuoi usare una passphrase. L'inserimento di una passphrase ha i suoi vantaggi:la sicurezza di una chiave, non importa quanto crittografata, dipende comunque dal fatto che non è visibile a nessun altro. Se una chiave privata protetta da passphrase cade in possesso di utenti non autorizzati, questi non potranno accedere ai relativi account associati fino a quando non scopriranno la passphrase, facendo guadagnare all'utente violato un po' di tempo in più. L'unico aspetto negativo, ovviamente, di avere una passphrase, è quindi doverla digitare ogni volta che usi la coppia di chiavi.
L'intero processo di generazione delle chiavi è simile al seguente:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
La chiave pubblica si trova ora in /home/demo/.ssh/id_rsa.pub La chiave privata (identificazione) si trova ora in /home/demo/.ssh/id_rsa
Fase tre:copia la chiave pubblica
Una volta generata la coppia di chiavi, è il momento di posizionare la chiave pubblica sul server virtuale che vogliamo utilizzare.
Puoi copiare la chiave pubblica nel file authorized_keys della nuova macchina con il comando ssh-copy-id. Assicurati di sostituire il nome utente e l'indirizzo IP di esempio di seguito.
ssh-copy-id user@123.45.56.78
In alternativa, puoi incollare le chiavi usando SSH:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Indipendentemente dal comando che hai scelto, dovresti vedere qualcosa come:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Ora puoi andare avanti e accedere a user@12.34.56.78 e non ti verrà richiesta una password. Tuttavia, se imposti una passphrase, ti verrà chiesto di inserire la passphrase in quel momento (e ogni volta che accedi in futuro).
Fase quattro facoltativa:disattivare la password per l'accesso root
Dopo aver copiato le chiavi SSH sul server e aver assicurato di poter accedere solo con le chiavi SSH , puoi andare avanti e limitare il login di root in modo che sia consentito solo tramite chiavi SSH.
Per fare ciò, apri il file di configurazione SSH:
sudo nano /etc/ssh/sshd_config
All'interno di quel file, trova la riga che include PermitRootLogin
e modificalo per garantire che gli utenti possano connettersi solo con la loro chiave SSH:
PermitRootLogin without-password
Metti in atto le modifiche:
service openssh-server restart