Seleziona Pagina

Realizzazione siti web

Chiave SSH

Come generare una chiave SSH

da | 17 Mar 2020 | Guide, Sicurezza

Cosa significa accesso tramite SSH

SSH (Secure SHell) è un protocollo che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host (tipicamente server) e che permetta facilmente di gestire file e directory o modificarne i permessi.

 

Cos’e’ una chiave SSH

La chiave SSH è un tipo di autenticazione basata su chiavi, utilizzata per l’accesso tramite SSH. E’ molto utilizzata in quanto è un metodo di accesso più sicuro rispetto all’autenticazione utente/password. La procedura prevede la generazione di una coppia di file; una chiave privata e una pubblica. La chiave pubblica verrà installata sull’ host a cui ci si dovrà collegare mentre la chiave privata è la chiave che ci permette il collegamento.

 

Creazione chiavi

Per prima cosa è necessario generare le chiavi. E’ possibile farlo con qualsiasi distribuzione Linux o anche direttamente su un host a cui ci collegheremo tramite chiavi.

Iniziamo la generazione aprendo un terminale ed eseguendo il comando ssh-keygen

ssh-keygen -t rsa

Ci verrà richiesto il nome e il percorso di destinazione dove verrà salvata la nostra coppia di chiavi (di default: /nomeutente/.ssh/id_rsa); inseriamolo o premiamo Invio

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Come ulteriore livello di sicurezza, ci verrà richiesta una password che si dovrà inserire ogni volta per poter accedere tramite chiave privata; inseriamola due volte (per conferma) o altrimenti premiamo due volte Invio per evitarla e passare allo step successivo

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Al termine della procedura le nostre chiavi sono state create

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:pznddwK+QCdzjWBEGQdn/lCXt1lY37TGWDjnnJuCiEg [email protected]
The key’s randomart image is:
+—[RSA 2048]—-+
| .=++ o+=|
| ..= +==*|
| o o.=+O|
| E . . =.* |
| . . S * * o o|
| . . B O o o |
| + o o + .|
| . . o o |
| . |
+—-[SHA256]—–+

Infatti nel percorso scelto (nel mio caso /root/.ssh/) saranno presenti due files id_rsa e id_rsa.pub

[[email protected] .ssh]# ll
total 8
-rw——- 1 root root 1679 Mar 17 16:25 id_rsa
-rw-r–r– 1 root root 401 Mar 17 16:25 id_rsa.pub

 

Configurazione host a cui collegarsi

Ora vedremo come configurare l’host di destinazione su cui ci colleghermo tramite chiavi. Per questa procedura è necessario avere il file id_rsa.pub a portata di mano

Apriamo un terminale sull’host selezionato

Andiamo nella directory /utente/.ssh (nel mio caso /root/.ssh)

cd /root/.ssh

Se non dovesse esistere, creiamo il file authorized_keys

vi authorized_keys

Apriamo o stampiamo parallelamente con un’editor il file id_rsa.pub creato precedentemente; il contenuto sarà del tipo

[[email protected] .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkW9MoGcfVjUeNzaMxc6etaOX+3qE4+k1wY15E6J5454V21wLrYgkIZnJn6VdPEKKGYLXBieGrvK6fkwIRTdOFyKX7zqtKmkaPbdDafPTq/9QHLFaPMJuhrvBiVHIRCuvM1w/CpS5VTXb7uaJet5WSkyv7rzOeNz6vuL9s1Upwl2mR08PtyEEJtiVpuSH9mlIhYKPMKzX7nhvjoIZnbVh1cmXs7SmpcJ0HERYqt6PFxGk68wOo7sjXtCwNmpwCyuPvYAOTakmq/PW4YOakG/df30oVJXv3rHbDHiRXLn3ILfeC1fe0doxg4YDxXDDFynPv4IckvMXOnwjW/gBSXDdt [email protected]

Ora non ci resta che copiare questo testo all’interno del file authorized_keys

Premiamo il tasto i per abilitare l’immissione del testo e incolliamo.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkW9MoGcfVjUeNzaMxc6etaOX+3qE4+k1wY15E6J5454V21wLrYgkIZnJn6VdPEKKGYLXBieGrvK6fkwIRTdOFyKX7zqtKmkaPbdDafPTq/9QHLFaPMJuhrvBiVHIRCuvM1w/CpS5VTXb7uaJet5WSkyv7rzOeNz6vuL9s1Upwl2mR08PtyEEJtiVpuSH9mlIhYKPMKzX7nhvjoIZnbVh1cmXs7SmpcJ0HERYqt6PFxGk68wOo7sjXtCwNmpwCyuPvYAOTakmq/PW4YOakG/df30oVJXv3rHbDHiRXLn3ILfeC1fe0doxg4YDxXDDFynPv4IckvMXOnwjW/gBSXDdt [email protected]

~
~

— INSERT —

Salviamo e chiudiamo il file premendo il tasto ESC e, in seguito, :x!

Ora il file authorized_keys contiene la nostra chiave pubblica

 

Test di connessione

Proviamo ora a collegarci tramite la chiave privata;

Apriamo un terminale ed effettuiamo la connessione (se avessimo inserito una password durante la creazione delle chiavi, dovrete inserirla quando richiesto)

ssh -i percorsoChiavePrivata [email protected]

Se tutto è stato configurato correttamente ci troveremo davanti alla riga di comando

[[email protected] ~]#

 

Abilitare l’accesso solo tramite chiavi

Una volta testata la corretta configurazione e connessione tramite chiavi, è consigliato di disattivare la possibilità di autenticazione tramite utente/password e permettere l’accesso solo tramite chiavi.

Una volta connessi all’host di destinazione, è necessario modificare il file di configurazione dell’SSH

vi /etc/ssh/sshd_config

Cerchiamo la riga

PasswordAuthentication yes

e modifichiamola in

PasswordAuthentication no

Non ci resta che riavviare il servizio SSH con il comando

systemctl restart sshd.service

Se ora tentaste di collegarvi senza chiavi all’host di destinazione dovrestre riscontrare il seguente errore

No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)

Il che significa che l’accesso consentito all’host è solo tramite chiavi

 

Informazioni aggiuntive

Una peculiarità dell’autenticazione tramite chiavi è la possibilità di collegarsi ad host diversi utilizzando la stesse chiavi; ovvero, basta solo ripete la sezione “Configurazione host a cui collegarsi” per ogni host a cui vogliamo collegarci e potremmo farlo utilizzando la stessa chiave privata

ARTICOLI CORRELATI

OFFICE 365 PHISHING, come riconoscere la truffa

OFFICE 365 PHISHING, come riconoscere la truffa

Realizzo questo articolo per parlare dell'eterna campagna office 365 phishing nei confronti dei possessori di un account microsoft 365 o office 365. Iniziati diversi anni fa e andati sempre ad aumentare i tentativi di phishing nel quale cercano di rubare i dati degli...