Question

    

Cette question a déjà une réponse ici:

         

J'essaie de copier un fichier de mon serveur distant vers mon local. Voici mon script pour l'exécuter, en utilisant 'expect' pour envoyer automatiquement un mot de passe

scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"

Quand je lance ceci, il demande toujours & "Mot de passe &"; qu'est-ce qui ne va pas?

Était-ce utile?

La solution

D'après ce que vous essayez de faire, il semblerait que vous feriez mieux d'utiliser ssh avec une clé publique et une clé privée. Vous pouvez commencer par google pour le didacticiel ssh-keygen.

Autres conseils

Bien que je sois d’accord avec Sam et Nik, la réponse à votre question est que vous n’avez pas & "appuyé sur Entrée &";

.
send "mypassword\r"

Ce script d'attente fait l'affaire (grâce à 'zedwood' )

#!/usr/bin/expect -f
set filename [lindex $argv 0]
set timeout -1
spawn scp $filename myusername@192.168.1.123:/home/myusername/
set pass "mypassword"
expect {
        password: {send "$pass\r" ; exp_continue}
        eof exit
}

s'il vous plaît, ne laissez même pas de tels scripts sur place qui seront repris par quelqu'un d'autre et utilisés ailleurs .... essayez authentification par clé publique , il est très facile à configurer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top