Forum Programmation.shell script de connexion ssh problème avec sshpass (Résolu)

Posté par  . Licence CC By‑SA.
Étiquettes :
-1
8
juin
2015

Bonjour,

je prépare un test de connexion ssh à partir d'une liste de serveur stocker dans un fichier si les connexions échouent les noms des serveurs sont redirigés dans un fichier qui s'appel other si la connexion est OK le nom des serveurs sont redirigés vers le fichier good.

Pour géré les mots de passes du user j'utilise la command sshpass avec les options ssh pour ne pas demander la clé ssh si aucunes clées est stockées en local cela m'évite de gérer les clés sur les connexion des nouveaux serveurs.

voici le programme

rm good other
while read ip; 
do
    status=$(sshpass -pmonpasswd ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10s a0003358@$ip echo ok 2>&1)
        if [ $status = ok ]
        then echo $ip >> good;
        else echo $ip >> other;
        fi
done <mixte_test.txt

Le programme fonctionne parfaitement lorsque les connexions sont NOK en revanche si la connexion est OK. Une connexion est établie mais le script ssh ne continue pas bien que le tunnel ssh ne soit plus maintenu.
Avez des idées de l'arrêt du script?
Une autre méthode pour arriver au même résultat ne sera pas de refus…je suis preneur.
A vos claviers ;-)

  • # ssh -q

    Posté par  . Évalué à 1.

    Bonjour,

    Tu peux peut-être t'inspirer de cette page avec la commande ssh -q ;)

    • [^] # Re: ssh -q

      Posté par  . Évalué à 1.

      Bonjour,
      merci pour ton aide mais l'option ne permet de pallier problème.
      Car nous avons la gestion des mots passes à prendre en considération si nous utilisons la commande de base ssh.
      Malheureusement les options de sshpass sont assez limitées et ne permettent pas d'inclure les options de ssh

  • # Résolution

    Posté par  . Évalué à 1.

    J'ai remplacé ma boucle while par un for.
    Le script fonctionne correctement.
    J'ai aussi ajouté des sleep car la boucle ne se connecté pas sur certains équipement

    >good other
    for ip in `cat mixte_test.txt; 
    do
        status=$(sshpass -pmonpasswd ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10s a0003358@$ip echo ok 2>&1)
    sleep 3
            if [ $status = ok ]
            then echo $ip >> good
            else echo $ip >> other
            fi
    done
    • [^] # Re: Résolution

      Posté par  . Évalué à 3.

      tu devrais utiliser ce script pour pousser ta clef SSH sur les machines,

      ainsi tu n'aurais plus besoin de mettre ton mot de passe
      cela eviterait alors de l'avoir en clair quand on fait un top ou un ps faux

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.