Appel txt dans EXPECT

Bonjour à tous,

J'essaye de me connecter en ssh via un expect en spécifiant le mot de passe dans un fichier texte mais je n'arrive pas à faire appel mon fichier txt.

Voilà mon script :
#!/usr/bin/expect -f

spawn ssh root@IP_DE_MON_SERVEUR_DISTANT
expect "assword: "
send "password.txt\r"
interact

Lorsque je lance le script, on me demande toujours le mot de passe.

En mettant le mot de passe directement dans le script, ça fonctionne.

Est-ce vous avez une solution à me proposer ? svp

Je galère depuis 2 jours la dessus.

Merci à vous,

1 réponse

  1. Contributeur
    Salut,

    #!/usr/bin/expect -f

    set passfile [open "/chemin/vers/password.txt" r]
    set password [read $passfile]
    close $passfile


    spawn ssh root@IP_DE_MON_SERVEUR_DISTANT
    expect "password:\n "
    send -- "$password \n"
    interact


    1
    1. Bonsoir et merci pour ton message zipe,
      J'ai modifié le code mais on me demande toujours le mot de passe.
      Dans mon fichier password.txt, j'ai pourtant bien une ligne avec mon mot de passe.

      Tu as une idée ?
      0
    2. Ça y est ça fonctione, dans ton expect il ne fallait pas mettre --> expect "password:\n " mais --> expect "password: "

      Imaginons que j'ai plusieurs mot de passe dans mon fichier texte (à chaque ligne) et que je veux que le "expect" parcours le fichier jusqu'à ce qu'il tombe sur le bon.
      Comment faire ?
      0
    3. Merci pour lien mais je n’arrive pas à trouver la bonne ligne et à quel moment l’inserer.
      0