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

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *