La gestione delle chiavi SSH » Cronologia » Versione 2
« Precedente |
Versione 2/7
(diff)
| Successivo »
Simone Piccardi, 18-07-2024 13:24
La gestione delle chiavi SSH¶
L'utilizzo di SSH (Secure SHell) è ormai un passo obbligato per ottenere un accesso da remoto ai server che si intendono gestire. Nel caso di Linux questo viene universalmente fornito dal progetto OpenSSH, che fornisce sia la parte server (il servizio che consente di collegarsi) che la parte client col comando ssh
. Nel mondo Windows è però comune utilizzare come client un programma grafico, Putty. Benché sia sempre possibile usare la normale autenticazione (con username e password) è fondamentale per la sicurezza utilizzare il supporto fornito dal progetto per l'autenticazione a chiavi (che su distribuzioni è anche l'unico che nell'installazione di default è utilizzabile per avere un accesso amministrativo con l'utente root). Vedremo in questo articolo come effettuare una serie di operazioni relative alla gestione ed all'uso delle chiavi con OpenSSH.
Creazione di una coppia di chiavi¶
Il primo passo per l'utilizzo di questo meccanismo di autenticazione è la creazione di una coppia di chiavi personale: una chiave privata, che è quella che ci permetterà di identificarci distribuendo a destinazione la corrispondente chiave pubblica. Questa operazione viene eseguita, come la gran parte delle operazioni relative alla gestione delle chiavi, dal comando ssh-keygen
, da invocare senza nessun argomento:
root@bookworm:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:AlZFxA+olPPKhpz9KwdvRwIwDMpgNJFo7Im2IQCCVjI root@bookworm The key's randomart image is: +---[RSA 3072]----+ |@E+. ..*+ | |X=B +.. o | |B..+o+ o | |o= .o.. . | |o.o= o. S | | .+ * ... | | . + o | | . = . | | +.o | +----[SHA256]-----+
in questo caso anzitutto ci viene chiesto di indicare su quale file salvare la chiave privata (quella pubblica sarà sempre salvata in un secondo file con lo stesso nome ed un ulteriore suffisso .pub
). Il default è usare il file .ssh/id_rsa
nella home dell'utente che esegue il comando. VIene chiesto poi l'inserimento di una passphrase (un modo per enfatizzare la necessità di usare qualcosa di più robusto della classica password elementare), da ripetere due volte per conferma. Si può creare una chiave senza password premendo due volte invio.
Viene poi stampata una immagine in ascii-art che illustra visivamente il contenuto della chiave, indicandone anche gli algoritmi crittografici usati e le dimensioni. Il default è usare l'algoritmo RSA, ma con l'opzione -t
si può indicare di usarne uno delle altre due possibili alternative, ecdsa
e ed25519
(ma in genere non ci sono motivi specifici per cambiarlo). Come accennato si troveranno la chiave pubblica e la chiave privata rispettivamente nei file .ssh/id_rsa
e .ssh/d_rsa.pub
.
Cambiare al passphrase di una chiave privata¶
Per cambiare la passphrase della proprio chiave privata è sufficiente usare il comando ssh-keygen -p
, questo chiederà prima di indicare in quale file questa è contenuta (indicando il default che è ~/.ssh/id_rsa
che verrà accettato se si preme invio, se ne può indicare uno con ssh-keygen -p -f /path/to/file
) e poi chiederà la vecchia passphrase e la nuova due volte.
Convertire una chiave pubblica di Putty per OpenSSH¶
Le chiavi SSH generate da Putty un formato in stile PEM, e sono della forma:
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20240709" AAAAB3NzaC1yc2EAAAADAQABAAABAQCa8ajLS0A7xNSLCp/VuB+kXRbKomuqd2dX ... BWiQN9v1n21YSaC+NCuCXO/7POJrGhfWe/ppL/jPKXTGKl0x5aEN ---- END SSH2 PUBLIC KEY ----
queste possono essere convertite nel formato usato da OpenSSH con il comando:
ssh-keygen -i -f putty_pub.key > openssh_key.pub
Aggiornato da Simone Piccardi 4 mesi fa · 2 revisions