ServerTutorialVPS

Autenticazione SSH con chiave pubblica

SSH è uno strumento fondamentale per ogni amministratore di sistema, infatti permette di configurare un server remoto in maniera sicura sfruttando robusti algoritmi di cifratura. Di default è installato nella maggior parte delle distribuzioni Linux e sistemi Mac/OS.

Oggi la nostra guida è rivolta a tutti i possessori di Server Dedicati e VPS e vedremo come effettuare un accesso a SSH in modo più sicuro rispetto all’accesso classico con richiesta di password.

UN PO’ DI TEORIA…

Il metodo di cui stiamo parlando è l’autenticazione a chiave pubblica/privata. Questo metodo di autenticazione è basato sulla crittografia asimmetrica. L’algoritmo di crittografia asimmetrica più utilizzato per la generazione delle chiavi è l’RSA.

Per autenticarsi il client genera una coppia di chiavi pubblica/privata utilizzando un algoritmo di crittografia asimmetrico supportato dal protocollo SSH mediante il comando ssh-keygen. Generate le chiavi l’utente deve trasferire la propria chiave pubblica sul server in cui viene generalmente memorizzata in un apposito file nella home directory dell’utente nel server; la chiave privata viene conservata sul client e non deve essere divulgata, per garantire una maggiore sicurezza e’ possibile proteggere la chiave privata con una password (passphrase). L’utente può trasferire la propria chiave pubblica sul server sia mediante supporti di memorizzazione fisici che mediante il comando ssh-copy-id.

ssh

E ADESSO PASSIAMO ALLA PRATICA

Procedura per sistemi Linux e Unix-like

Generiamo la coppia di chiavi (pubblica e privata) digitando il seguente comando

ssh-keygen

Verrà richiesto di inserire un percorso e nome del file dove memorizzare le chiavi, di default viene proposto il seguente: /home/user/.ssh/id_rsa dopo aver confermato verrà richiesto di inserire una password per proteggere la chiave, se non inserite nulla la password non verrà settata (eventualmente è possibile modificarla successivamente).
Al termine di questa operazione verranno quindi creati due file:
/home/user/.ssh/id_rsa che conterrà la chiave privata da mantenere al sicuro e /home/user/.ssh/id_rsa.pub che invece conterrà la chiave pubblica che utilizzeremo per autenticarci al server remoto.

Copiamo quindi la chiave pubblica nel nostro server remoto con il seguente comando:

ssh-copy-id -i ~/.ssh/id_dsa root@192.168.1.200

dove l’IP è quello del nostro server dedicato/vps. Questo comando ci chiederà la password di accesso del server remoto che dovremo inserire per accedere. Una volta effettuata quest’operazione non sarà più necessario digitare la password per connettersi al server:

ssh root@192.168.1.200

il sistema in automatico utilizzerà l’autenticazione con chiave pubblica/privata e ci farà accedere senza richiesta di password di root.

Metodo alternativo per la copia della chiave:

cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.200 "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"

Questo comando serve a copiare il contenuto del file id_rsa.pub (che contiene la chiave pubblica) e inviarla al server remoto in particolare nel file ~/.ssh/authorized_keys, inoltre se la directory ~/.ssh non esiste la crea.

Procedura per Sistemi Windows

Il più diffuso tool utilizzato negli ambienti Windows (e non solo) per gestire le connessioni SSH è sicuramente Putty.
L’interfaccia è semplice ed intuitiva e permette di settare molte configurazioni di connessione. Per iniziare occorre prima scaricare Puttygen un tool standalone che ci servirà per creare la coppia di chiavi pubblica/privata.

L’uso è semplice, una volta avviato clicchiamo su Generate per avviare la procedura.

1470-random-generating

Al termine otterremo già la chiave pubblica che potremo copiare nel nostro server dedicato come mostrato in precedenza o accedendo tramite putty per la prima volta con la password. Clicchiamo quindi i pulsanti Save per salvare le chiavi nel sistema.

Una volta copiata la chiave nei nostri server (se non l’hai ancora fatto prosegui con la guida) impostiamo Putty per utilizzare la chiave creata come metodo di autenticazione. A questo scopo basta recarsi su Connection sotto il menù SSH e selezionare Auth

1462-auth-location

Dovremo quindi andare ad impostare il percorso della chiave pubblica precedentemente salvata.

1473-private-key-file-location

Infine per connettersi clicchiamo nel menù Session, inseriamo l’IP e la porta del nostro server e colleghiamoci al server ssh.

1475-saved-session

Se abbiamo già provveduto a copiare la chiave nel server remoto putty si collegherà direttamente, in caso contrario per il primo accesso sarà necessario inserire le credenziali (user e password) e tramite la procedura indicata andare a copiare la nostra chiave pubblica nel file ~/.ssh/authorized_keys

Nella nostra prossima guida vedremo come rendere sicuro il nostro server ssh per evitare attacchi bruteforce e accessi indesiderati.

Se avete dubbi, problemi o suggerimenti non esitate a lasciarci un commento.

Lascia un commento

Back to top button