Come utilizzare ssh per effettuare collegamenti sicuri sulla propria infrastruttura di rete, dall'installazione del demone sul server fino ai numerosi esempi di collegamento e utilizzo.
Iniziamo a installare sul server il demone ssh:
apt-get install ssh
sul client procediamo nella creazione di una coppia di chiavi pubblica/privata per l'utente che dovrà connettersi al servizio:
ssh-keygen -t dsa
a un certo punto viene chiesto di inserire una pass-phrase, si consiglia di inserire una frase molto lunga (la pass-phrase è semplicemente una stringa di testo che viene utilizzata per criptare la chiave privata), questo consente di incrementare ulteriormente la sicurezza.
Dopo aver eseguito il comando precedente, nella directory ~/.ssh/, sarà stato creato il key-pair costituito da due file: id_dsa e id_dsa.pub.
Il file id_dsa contiene la password privata creata per l'utente, deve essere conservato con molta cura, pertanto è consigliato l'assegnazione di permessi 600 (leggibile e scrivibile solo all'utente che è proprietario del file).
Il file id_dsa.pub contiene invece la chiave pubblica che deve essere memorizzata sul server in modo che possa essere utilizzata nella fase di autenticazione.
Bisognerà quindi inserire la nostra chiave pubblica tra quelle autorizzate per l'utente corrispondente sul server eseguento i seguenti comandi:
scp ~/.ssh/id_dsa.pub utente@serverremoto: ssh utente@serverremoto: "cat id_dsa.pub >> .ssh/authorized_keys && rm id_dsa.pub"
terminate le operazioni appena descritte, il server si comporterà nel modo seguente appena riceverà una richiesta di accesso da parte di un utente specifico:
- verificherà che la chiave presentata durante il collegamento sia autorizzata dal corrispondente utente locale
- chiederà all'utente locale la pass-phrase inserita precedentemente
- se tutte le verifiche avranno esito positivo, il server permetterà l'accesso senza chiedere ulteriori autenticazioni
bisogna tenere ben presente che nel caso si debba reinstallare il server e di conseguenza rigenerare un nuovo key-pair, quando si effettua il collegamento, viene visualizzato il messaggio seguente:
warning: remote host identification has changed!
questo dovrebbe metterci in allarme, e dovremmo preoccuparci di avere una conferma sicura riguardo la segnalazione della coppia di chiavi cambiata sul server, questo per escludere magari un possibile attacco di tipo man-in-the-middle.
Quindi per accedere al servizio da un computer remoto:
ssh utente@serverremoto:
è possibile evitare di inserire continuamente la pass-phrase utilizzando "ssh-agent", un gestore di pass-phrase sicuro.
Esempi di collegamento:
eseguire un comando...
ssh utente@server comando
copiare files...
scp nomefile utente@serverremoto:/percorso_destinazione_file/
il server sul quale è attivo il demone sshd è inoltre in grado di svolgere anche un servizio di File Transfer, indipendentemente dalla presenza del servizio FTP e senza modificare ulteriormente la configurazione del demone sshd.
Esempi:
sftp utente@serverremoto
get nomefile ls e cd mkdir nomedir put nomefile rm nomefile
aggiungendo semplicemente il carattere "l" davanti ai comandi, essi verranno eseguiti localmente.
E' possibile anche ridirigere il display delle applicazioni X11, per questo è necessario settare X11Forwarding yes nel file di configurazione /etc/ssh/sshd_config.

