J'essaie d'utiliser Expect dans un script Bash pour fournir le mot de passe SSH. Fournir le mot de passe fonctionne, mais je ne me retrouve pas dans la session SSH comme je le devrais. Cela revient directement à Bash.
Mon script :
#!/bin/bash
read -s PWD
/usr/bin/expect <<EOD
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com'
expect "password"
send "$PWD\n"
EOD
echo "you're out"
La sortie de mon script :
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com
usr@$myhost.example.com's password: you're out
Je voudrais avoir ma session SSH et, seulement quand je la quitte, revenir à mon script Bash.
La raison pour laquelle j'utilise Bash avant Expect est que je dois utiliser un menu. Je peux choisir à quelle unité/dispositif me connecter.
<strong>À ceux qui veulent répondre que je devrais utiliser des clés SSH, veuillez vous abstenir.</strong>
56 votes
Veuillez voir la première ligne : Pour ceux qui veulent répondre que je devrais utiliser des clés SSH, veuillez vous abstenir.
58 votes
Je modifierais votre première ligne pour qu'elle soit un peu plus amicale. Vous pourriez envisager quelque chose comme "En raison de contraintes, je ne peux tout simplement pas utiliser de clés SSH, je dois trouver un moyen de le faire fonctionner avec des attentes". Vous devez vous attendre à ce que les gens soient naturellement curieux de savoir pourquoi vous n'utilisez pas de clés, et vous essayez juste d'être utile :) @Ignacio ne l'a pas fait suggérer que vous les utilisiez, il confirmait simplement que c'était une contrainte et non un oubli.
0 votes
J'essaierais d'utiliser kermit dans ce cas. Il dispose d'un très langage de script robuste columbia.edu/kermit/skermit.html#scripts