GNU/Linux >> Tutoriels Linux >  >> Linux

Comment saisir un mot de passe pour plusieurs fenêtres ?

J'ai un script qui démarre ma machine vagabonde, ouvre plusieurs terminaux et se connecte à la machine vagabonde via ssh dans chaque terminal nouvellement ouvert. Mon problème est que j'ai besoin d'environ cinq terminaux et je ne veux pas saisir manuellement le mot de passe de chaque terminal. Existe-t-il un moyen d'être invité à saisir le mot de passe une seule fois dans le terminal principal et d'utiliser le même mot de passe pour la commande ssh ?

#!/bin/bash
cd /home/kkri/public_html/freitag/vagrant
vagrant up
for run in $(seq 1 $1)
 do
  gnome-terminal --window-with-profile=dark -e "ssh [email protected] -p 2222" --$
 done
gnome-terminal --window-with-profile=git          
clear
echo "~~~ Have fun! ~~~"

Réponse acceptée :

En général (en ignorant le vagabondage ou d'autres détails spécifiques au système), votre meilleur pari est de configurer l'authentification avec des clés SSH et d'exécuter ssh-agent . Ouvrez ensuite les sessions ssh avec quelque chose comme :

# load the key to the agent with a 10 s timeout
# this asks for the key passphrase
ssh-add -t10  ~/.ssh/id_rsa  
for x in 1 2 3 ; do 
    ssh .... 
done

Ou, si vous ne pouvez pas utiliser de clés, vous pouvez truquer quelque chose avec sshpass .

read -p "Enter password: " -s SSHPASS ; echo
for x in 1 2 3 ; do 
    sshpass -e ssh ...
done
unset SSHPASS

Bien qu'avec le terminal au milieu, cela laisserait le mot de passe défini dans l'environnement du terminal. Pour contourner ce problème, vous pouvez enregistrer temporairement le mot de passe dans un fichier :

read -p "Enter password: " -s SSHPASS ; echo
PWFILE=~/.ssh/secret_password
cat <<< "$SSHPASS" > "$PWFILE"
unset SSHPASS
for x in 1 2 3 ; do 
    sshpass -f "$PWFILE" ssh ...
done
shred --remove "$PWFILE"

Ce n'est toujours pas optimal car il y a une chance que le mot de passe frappe le disque, donc les clés seraient meilleures.


Linux
  1. Comment créer une image Windows pour OpenStack

  2. Ssh – Comment Ssh demande-t-il un mot de passe lorsque toutes les entrées et sorties sont redirigées ?

  3. Comment configurer plusieurs environnements de déploiement pour Juju ? ?

  4. Comment désactiver la connexion SSH avec un mot de passe

  5. Comment faire en sorte que git ne demande pas de mot de passe au pull?

Comment configurer les clés SSH – Windows OS ?

Comment désactiver l'authentification par mot de passe SSH sur Linux VPS

Comment configurer l'authentification multifacteur pour SSH sous Linux

Comment installer WSL2 (sous-système Windows pour Linux 2) sur Windows 10

Comment transmettre un mot de passe à la commande SSH sous Linux

Comment réinitialiser un mot de passe d'administrateur d'hôte Windows oublié