2009-06-25 10 views
3

リモートサーバーからローカルにファイルをコピーしようとしています。ここに私のスクリプトがautomaticlally'expect'を使用してパスワードを自動的に送信する

scp [email protected]:/folder/myFile ./ 
expect "Password: " 
send "myPassword" 

私はこれを実行し、パスワードに送信するために「期待する」を使用して、それを実行することだ、それはまだ何が間違っている、「パスワード」の入力を要求しますか?

答えて

1

あなたがしようとしていることは、公開鍵と秘密鍵でsshを使う方が良いかもしれないようです。あなたはssh-keygenチュートリアルのためにgoogleを始めましょう。

4

他の人が拾って、他の場所で使用されるようなスクリプトを残さないでください。public key authenticationを試してみてください。セットアップが非常に簡単です。

10

私はサムとNIKに同意しながら、あなたの質問への答えは、あなたが「入るヒット」しなかったことである:

send "mypassword\r" 
5

このスクリプトは、ジョブ('zedwood'のおかげで)

#!/usr/bin/expect -f 
set filename [lindex $argv 0] 
set timeout -1 
spawn scp $filename [email protected]:/home/myusername/ 
set pass "mypassword" 
expect { 
     password: {send "$pass\r" ; exp_continue} 
     eof exit 
} 
を行い期待
+0

私がstackoverflowで見つけた最初の作業スクリプト!共有していただきありがとうございます!私はこのように期待してはならないアドバイスをいつも見つけ出しています...実際に私はsshdサーバーが公開鍵認証Orzをサポートしていないルータでテストしなければならないプログラムを開発していました。期待を使うことは私の唯一の救いです。 –

関連する問題