script per ssh più server con password diverse


0

Ho uno script che esegue gli stessi comandi su più server tramite ssh.

spawn ssh [lindex $argv 0]
send "sudo /usr/sbin/useradd ytkatchen"
expect "password:"
send "Unix\@999\r"

La mia password non è uguale / uguale per tutti i server. Ho 2 password diverse per un lungo elenco di server.

Il mio requisito è che lo script debba stabilire una connessione ssh e usare una password valida e corretta per mantenere il lavoro in corso.

Non dovrebbe essere eseguito se la password è sbagliata, piuttosto dovrebbe provare un'altra password e andare avanti.

Risposte:


1

Il modo più semplice sarebbe utilizzare le chiavi ssh invece delle password.

È possibile generare una coppia di chiavi ssh per server e utilizzarli per connettersi automaticamente senza utilizzare password.

È anche meglio per la sicurezza in quanto non è necessario richiedere o memorizzare alcuna password con il tuo script.


Ho già accesso senza password a tutte le macchine, ma dopo aver effettuato il log in per il comando s needudo / usr / sbin / useradd ytkatchen viene eseguito che richiede una password.
parpande

Puoi provare cose come questa: echo mypassword | sudo -S comando. L'opzione -S per sudo ascolta stdin.
nex84

0

È possibile impostare senza password sudo sui tuoi server in modo da non doverti preoccupare di inserire le password. Una guida rapida:

$ sudo visudo

Aggiungi una nuova riga alla fine del file:

EditThisToYourUsername ALL=(ALL) NOPASSWD:ALL

Avviso: è un carattere di tabulazione tra Nome utente e TUTTO.

Salva il file (Escape,: x, Invio).

Un'altra soluzione è che puoi ascoltare il codice di uscita del tuo sudo comando per sapere se la password inserita è corretta o meno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.