agent ssh

Come impostare un Agente SSH per la massima sicurezza in rete

Il protocollo SSH e l’impostazione di una passphrase possono blindare l’interscambio di dati tra server e client, ma la procedura può essere macchinosa. Per questo è stato inventato l’Agent Forwarding
Come impostare un Agente SSH per la massima sicurezza in rete FASTWEB S.p.A.

Ogni volta che scambiamo anche un solo bit in rete tale bit può essere intercettato e “letto” da un hacker, a meno che la connessione non sia protetta da un adeguato standard di crittografia, che impedisce al malintenzionato di leggere i dati anche qualora riuscisse ad intercettarli.

Per questo, già da diversi anni, si è affermato il protocollo di comunicazione SSH, cioè Secure Shell, che applica ai dati una crittografia basata su una coppia di chiavi: una pubblica e una privata. La chiave pubblica SSH è paragonabile ad un username, mentre quella privata è paragonabile ad una password. La seconda, chiaramente, è il cuore del sistema di crittografia e va protetta dagli attacchi.

Per questo sarebbe sempre meglio conservata in locale, sul dispositivo di chi si connette e non sul server al quale ci si connette.

Anche la chiave SSH privata è crittografata, per aumentare ulteriormente la sicurezza della connessione, e per ottenere una sicurezza ancor più alta si può proteggere la chiave privata con una passphrase, cioè un insieme di parole o stringhe che messe insieme formano una password estremamente robusta, davvero difficile da violare.

Il rovescio della medaglia è che è necessario inserire la passphrase ogni volta che è necessario utilizzare una chiave privata, una cosa che diventa ben presto fastidiosa. Per questo la maggior parte dei client SSH è dotata di un cosiddetto "agente SSH", che mantiene in memoria la chiave decrittografata. Grazie ad un agente SSH non è più necessario inserire ogni volta la passphrase, perché ci penserà l'agente a farlo (almeno fino al successivo riavvio del computer).

Che cos'è SSH Agent Forwarding

agent sshPer SSH Agent Forwarding si intende la possibilità di lasciare le chiavi SSH sul computer locale, invece di archiviarle sul server. Ciò è possibile aprendo il proprio agente SSH sul server al quale ci si vuole connettere: in questo modo l'agente agirà in nome nostro e non sarà necessario comunicare la chiave privata.

In pratica a dialogare e a negoziare lo scambio dei dati non saranno realmente il computer client e il server, ma l'agente sul client e l'agente sul server.

Quando chiederemo dei dati ad un server tramite SSH, quindi, tutto sarà più facile e veloce: normalmente, senza Agent Forwarding, il server consulterebbe i propri file id_rsa per identificarci, chiedendoci e poi confrontando la nostra la chiave privata con quella presente nei suoi registri, ma se l'Agent Forwarding è attivo inoltrerà la richiesta di autenticazione direttamente all’agente presente sul computer locale.

A quel punto sul nostro dispositivo locale l'Agent utilizzerà la nostra passphrase per accertare la nostra identità e quindi invierà la risposta, positiva, al server (senza che sia necessario inviare a quest’ultimo anche la nostra chiave privata, aumentando così la sicurezza delle nostre comunicazioni), il che finalmente abiliterà la connessione e l'interscambio sicuro dei dati.

Questo sistema ci permette di scambiare dati con una unica autenticazione iniziale, effettuata in locale e quindi intrinsecamente meno soggetta all’intercettazione di dati sensibili, anche in caso di comunicazione tra computer locale e cloud, indipendentemente dall'area geografica di appartenenza e in modo assolutamente decentralizzato.

Come impostare un Agente SSH

agent sshSia macOS che Linux sono sistemi operativi derivati da Unix e hanno entrambi un client SSH integrato direttamente nel terminale. Su Windows 10, invece, è possibile usare Linux Subsystem for Windows, che integra al suo interno la shell Bash (che funziona in modo analogo al terminale di macOS o alla shell di Linux). Altrimenti è necessario usare applicazioni di terze parti come Putty, SecureCRT o MremoteNG per poter lanciare una sessione SSH e usare l'Agent Forwarding per le connessioni sicure, ma senza dover ripetere continuamente l’accesso tramite passphrase.

I comandi da usare per abilitare l'Agent Forwarding sono simili su macOS e su Linux. Con il sistema operativo di Apple è necessario lanciare il comando:

ssh-add -K ~/.ssh/id_rsa

su Linux si usa in comando:

ssh-add ~/.ssh/id_rsa

Affinché l'Agent Forwarding funzioni, va prima abilitato nel file di configurazione del client, presente sul computer locale all'indirizzo:

~/.ssh/config

All'interno del file è necessario inserire:

Host [XYZ]

ForwardAgent yes

Al posto di “XYZ” dovremo scrivere l'indirizzo IP del server o il nome del dominio al quale vogliamo connetterci. Su alcuni sistemi operativi sono presenti anche dei file specifici per la configurazione di SSH: ad esempio, su Mac si trovano nella cartella /etc/ssh/ssh_config, su Ubuntu nella cartella /etc/ssh_config.

In questi file vanno inserite le stesse informazioni per abilitare l'Agent Forwarding, stando attenti a non fare errori altrimenti le due impostazioni potrebbero entrare in conflitto e impedire l'abilitazione della funzione.

La maggior parte dei client SSH per Windows, invece, ha una interfaccia grafica di configurazione dalla quale è possibile selezionare e impostare agevolmente l'Agent Forwarding senza dover lanciare alcun comando dalla shell.

Copyright CULTUR-E
Condividi
Ebook
Sicurezza in Rete: ne sai abbastanza?
Strumenti utili, suggerimenti pratici e tutto quello che devi assolutamente sapere per proteggere davvero i tuoi dispositivi e i tuoi dati personali quando sei connesso
scarica l'ebook

Iscriviti alla
newsletter del
Digital Magazine di
Fastweb

Riceverai ogni settimana le notizie più interessanti sul mondo della tecnologia!
Iscriviti

Grazie per esserti iscritto!

Abbiamo inviato una mail all'indirizzo che hai indicato: per completare l'iscrizione alla newsletter del Digital Magazine di FASTWEB clicca sul link all'interno della mail