Votre espace a été migré vers le nouveau wiki le 21/08/2023 : https://wiki.univ-lorraine.fr/wiki/perso/view/zimmerm15
Les modifications apportées ici depuis cette date ne seront pas reportées. Le wikidocs disparaitra définitivement le 31/01/2024.

Installer sa clé ssh sur une machine distante quand on n'a que le mot de passe

Quand on n'a que le mot de passe pour un ensemble de nombreuses machines, c'est pénible d'avoir à le taper à chaque fois, pour chaque machine. Ici une solution pour éviter de le taper plusieurs fois.

  • Mettre la liste des machines sur lesquelles ça doit être fait dans un fichier texte avec un fqdn par ligne :
hosts-sur-lesquels-mettre-sa-cle-ssh
toto.titi.com
tata.titi.com
tutu0.titi.com
tutu1.titi.com
…
tutu9.titi.com
  • Ajouter les nouvelles machines du fichier précédent dans le ~/.ssh/known_hosts :
Ajouter les nouvelles machines aux known hosts
grep -v '^#\|^[[:space:]]*$\|^\[[^]]*\]$' ~/hosts-sur-lesquels-mettre-sa-cle-ssh | ssh-keyscan -H -f - >> ~/.ssh/known_hosts
  • Faire l'opération suivante :
fabric
fab -I -A --connection-attempts=3 --user=monlogin -i ~/.ssh/id_rsa \
 --hosts=$(for h in $(cat ~/hosts-sur-lesquels-mettre-sa-cle-ssh |grep -v '^#'); do echo -n "$h," ; done | sed -e 's/,$//') \
 -- "mkdir ~/.ssh ; chmod 700 ~/.ssh ; ssh-add -L >> ~/.ssh/authorized_keys ; chmod 600 ~/.ssh/authorized_keys"
  • Après ça, ça doit marcher.
  • -I pour demander le mot de passe au prompt une seule fois pour toute l'opération.
  • -A pour transporter le ssh-agent.

Voir aussi