Automatisez des tâches avec SSH sans interrompre pour des prompts.
objectifs d’apprentissage
- BatchMode yes.
- Gestion des exit codes.
- Timeouts et KeepAlive.
prérequis
- Clés en place.
- Pas de mot de passe requis.
notions clés
- BatchMode.
- Exit code.
- ConnectTimeout, ServerAliveInterval.
démonstration guidée
étape 1
Exécuter une commande distante en mode batch.
ssh -o BatchMode=yes -o ConnectTimeout=5 user@203.0.113.10 'uptime'
étape 2
Utiliser ControlMaster pour des jobs multiples.
ssh -MNf -o ControlMaster=yes -o ControlPath=~/.ssh/cm-%r@%h:%p.sock user@203.0.113.10
ssh -o ControlPath=~/.ssh/cm-%r@%h:%p.sock user@203.0.113.10 'hostname'
exercice
Ecrivez une boucle qui exécute ‘hostname’ sur 3 serveurs en parallèle (xargs -P).
correction
Parallelisme simple.
printf "203.0.113.10\n203.0.113.11\n203.0.113.12\n" | xargs -I{} -P3 ssh -o BatchMode=yes user@{} 'hostname'
quiz éclair
- Quelle option interdit tout prompt pour mot de passe ?
- a) BatchMode yes
- b) ForwardAgent yes
- c) StrictHostKeyChecking no