Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

SSH: automatizzare le procedure di autenticazione remota

Link copiato negli appunti

Inserire dei processi di automazione nel proprio worflow può portare diversi benefici, sia in termini di riduzione dello stress che di tempo risparmiato. Oggi vogliamo portarvi l'esperienza di Adam McPartlan, Senior Systems Engineer per NYnet Ltd, che durante la sua routine quotidiana in azienda opera spesso su più terminali tramite SSH.

SSH è infatti un protocollo molto flessibile che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host in una rete informatica. McPartlan ha deciso di snellire il suo carico di lavoro automatizzando alcune operazioni che si ritrovava a ripetere anche decine di volte al giorno, partendo proprio da SSH e dalla gestione delle password e delle chiavi di cifratura RSA.

Ecco un esempio di utilizzo di SSH:

ssh -t nomenteutente@hostameoindirizzoIpdelPC 'cat /etc/hosts'

Questo comando restituirà un output con le informazioni del file hosts presente nella directory /etc. Ovviamente per eseguire tale comando sarà necessario effettuare il login digitando la password del server a cui ci stiamo connettendo, questo processo di autenticazione a lungo andare può rilevarsi noioso, ecco perché è possibile sfruttare delle chiavi RSA che sostanzialmente sostituiscono le password. Tali chiavi possono essere generate tramite l'ssh-keygen:

ssh-keygen

che restituirà un output simile:

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/adam/.ssh/id_rsa): y
Enter passphrase (empty for no passphrase): LEAVE BLANK
Enter same passphrase again:
Your identification has been saved in /home/nynet/.ssh/id_rsa.
Your public key has been saved in /home/nynet/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jUxrQRObADE8ardXMT9UaoAcOcQPBEKGU632646P8ho
 ?utente@hostenameoip
The key's randomart image is:
+---[RSA 2048]----+
|B*++*Bo.=o       |
|.+.              |
|=*=              |
+----[SHA256]-----+

Fatto questo copiamo la chiave nel PC o il server che ci interessa:

ssh-copy-id utente@hostenameoip
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/home/utente/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),
 ?to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if
 ?you are prompted now it is to install the new keys
utente@hostenameoip's password: ********
Number of key(s) added:        1

Se tutto è andato a buon fine la prossima volta che si userà SSH dal terminale con cui abbiamo condiviso la nostra chiave RSA non sarà più richiesta la password. In ambito aziendale tale procedura può anche essere replicata decine di volte, McPartlan ha quindi realizzato uno script bash che permette di automatizzare il tutto e condividere la chiave con più PC o server tramite un singolo comando:

#!/bin/bash
if [ -f server.txt ]; then
        for server in $(cat server.txt); do
                ssh -t adam@$server  '
                echo $(uname -r)                '
        done
else
        echo 'No server.txt file'
fi

Ovviamente nel file server.txt dovranno essere indicati i server o i PC che ci interessano. Come possiamo notare si tratta di uno script da pochissime righe di codice ma che semplifica notevolmente la vita di un amministratore di sistema, automatizzando una procedura molto lunga e ripetitiva.

Via Adam McPartlan

Ti consigliamo anche