Je connais l'authentification RSA, mais pour mes besoins, je veux utiliser un heredoc pour spécifier le mot de passe. Je veux quelque chose comme ce qui suit, mais je n'arrive pas à le faire fonctionner. Est-ce même possible ?
#!/bin/bash
echo -n "Entrez le mot de passe : "
read -s password
ssh myhost << EOL
$password
echo "Je suis connecté à myhost"
EOL
echo terminé
Voici ce que j'obtiens lorsque j'essaie :
$ ./testssh
Entrez le mot de passe :
Un pseudo-terminal ne sera pas alloué car l'entrée standard n'est pas un terminal.
Mot de passe de user@myhost :
Avertissement : Aucune donnée xauth ; utilisation de données d'authentification factices pour la redirection X11.
Avertissement : aucun accès à un terminal (Mauvais descripteur de fichier).
Aucune commande mypassword trouvée.
Je suis connecté à myhost
terminé
MODIFICATION :
En me basant sur la réponse de bmargulies, j'ai retravaillé mon script et j'ai obtenu ce qui suit :
#!/bin/bash
echo -n "Entrez l'hôte : "
read HOST
echo -n "Entrez le nom d'utilisateur : "
read USER
echo -n "Entrez le mot de passe : "
read -s PASS
VAR=$(expect -c "
spawn ssh $USER@$HOST
expect \"Mot de passe : \"
send \"$PASS\r\"
expect \">\"
send \"ls\r\"
send \"echo 'Je suis sur $HOST'\r\"
expect -re \"stuff\"
send \"logout\"
")
echo -e "\n\n\n========"
echo VAR = "$VAR"
echo terminé