[MontelLUG] Ciclo for per ssh

Luca 'remix_tj' Lorenzetto lorenzetto.luca a gmail.com
Ven 30 Ott 2015 00:06:16 CET


2015-10-29 16:17 GMT+01:00 samuele d'osvaldi <samuele.dosvaldi a gmail.com>:
> Ciao, sto cercando di automatizzare una serie di comandi da dare alle
> macchine dell'aula di contea ma ho bisogno di qualche consiglio.
>
> Allora...devo avviare questo script per inviare la chiave SSH per il login
> automatico di root a tutti i PC.
>
[cut brutteria con expect]

> "Incollando" info da internet e alcuni concetti visti nel corso di python
> pensavo di creare un file con un elenco di IP da passare al seguente ciclo
> for sapendo che la password di root è la stessa x ogni PC.
> SSH.exp è lo script al quale devo passare di volta in volta un IP...
>
> for i in $(cat /pathto/list.ip); do './ssh.exp $i root password_di root';
> done
>
> Qualcuno saprebbe dirmi se sono sulla strada giusta o se è meglio che mi
> faccia tutti i comandi a manina per 20 PC?

La strada è buona. Ma hai scelto la più difficile. E devo dire la
verità, a me expect fa schifo, anche se certe volte è inevitabile.

la soluzione più easy è:

for i in $(cat /pathto/list.ip); do sshpass -p passworddiroot
ssh-copy-id -i -i /root/.ssh/id_rsa.pub -o
UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$i; done

se vuoi fare cose più belline c'è anche la possibilità di usare -e al
posto di -p e fargli leggere la password dalla variabile di ambiente
SSHPASS (export SSHPASS="passworddiroot") oppure da un file con -f
(sshpass -f fileconlapassword.txt)

Ti dico, non l'ho mai provato con ssh-copy-id, ma lo uso normalmente
con ssh per lanciare comandi a tappeto.

Comunque un po' di man ssh man ssh-copy-id e sano classico rtfm
sull'internet ti saranno sicuramente utilissimi. Cerca spesso su
serverfault e sulla galassia di stackexchange, si trovano spesso
semplici soluzioni per problemi complessi

Ciao ciao

Luca



-- 
"E' assurdo impiegare gli uomini di intelligenza eccellente per fare
calcoli che potrebbero essere affidati a chiunque se si usassero delle
macchine"
Gottfried Wilhelm von Leibnitz, Filosofo e Matematico (1646-1716)

"Internet è la più grande biblioteca del mondo.
Ma il problema è che i libri sono tutti sparsi sul pavimento"
John Allen Paulos, Matematico (1945-vivente)

Luca 'remix_tj' Lorenzetto, http://www.remixtj.net , <lorenzetto.luca a gmail.com>


Maggiori informazioni sulla lista montellug