SSH in parallelo con pssh

SSH in parallelo con pssh

di Pubblicato: 12 Giugno 2019 0 commenti

Una delle particolarità di Linux è che si possono trovare strumenti davvero molto particolari, uno di questi che sicuramente non userete se non per particolari esempi che vedremo, è PSSH. Acronimo di Parallel SSH.

In realtà il pacchetto è un meta-pacchetto e nasconde altri strumenti che vedremo a breve. Nella pratica pssh crea appunto delle sessioni parallele di ssh, e quando impartiremo un comando esso verrà propagato, in parallelo per l’appunto, a tutte le sessioni.

A cosa può servire? immaginiamo di voler cambiare la password di un utente che è presente in un certo numero di server linux, oppure di applicare una patch di sicurezza, o effettuare una modifica ad una configurazione. Anziché andare server per server con questo strumento si risparmia davvero moltissimo tempo.

Chiaramente le situazioni in cui andiamo ad operare devono essere identiche. Il pacchetto non fa parte del sistema di base, ma va installato attraverso il vostro repository, per Ubuntu vale il canonico apt install pssh.

Una volta caricato abbiamo due strade di utilizzo, una diciamo più manuale e una più semplificata. Partiamo con la manuale, un esempio è la connessione:

pssh -i -H utente@server1 utente@server2

L’opzione -i indica di mostrare i risultati per ogni host, mentre -H indica gli host elencati di seguito. Se abbiamo l’autenticazione attraverso chiave RSA (sempre consigliato per i server Linux) non avremo l’annoso scoglio della password, viceversa ci tocca mettere la password per ognuno dei server richiesti.

La versione più automatica prevede che gli host possono essere memorizzati in un file di configurazione, che poi passeremo a pssh. Nel file, in semplice testo, possiamo direttamente indicare per ogni riga il nomeutente@server. Supponendo che il file si chiami parallel-server.txt daremo il comando:

pssh -i -h /path/parallel-server.txt

Faccio notare la h minuscola rispetto al comando “manuale”. E’ possibile anche indicare direttamente il comando nella medesima riga, ad esempio:

pssh -i -h /path/parallel-server.txt apt update && apt upgrade

Se poi l’utente che stiamo utilizzando è il classico user di primo livello e il comando necessita di elevazione a Sudo, è stato ovviamente previsto anche questo:

pssh -i -h /path/parallel-server.txt -A -l root apt update && apt upgrade

Anche in questo caso per evitare di immettere le password consiglio l’articolo su come dare i privilegi di sudo.

Nella parte inziale ho fatto cenno che questo è un meta pacchetto, ovvero contiene altri software, ed infatti oltre a pssh abbiamo anche:

  • Parallel scp (comando: parallel-scp o pscp), per copiare files in remoto
  • Parallel rsync (comando: parallel-rsync o prsync), per sincronizzare copie parallele
  • Parallel nuke (comando: parallel-nuke o pnuke), per “uccidere” processi in parallelo
  • Parallel slurp (comando: parallel-slurp o pslurp), per copiare files dai sistemi remoti

chiaramente questi rispetto a pssh, sono decisamente “minori” e già di per sè pssh non è che possa godere di chissà quale utilizzo, tuttavia è utile sapere che esistono questi strumenti.

Libri che ti consiglio sull'argomento

Alcuni titoli che ho trovato utili come manuale tecnico per questo articolo

Vuoi dire o aggiungere qualcosa?

sezione commenti aperta al pubblico

Non ci sono ancora commenti!

Puoi essere il primo a commentare.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.