6

リモート サーバーからローカルにファイルをコピーしようとしています。「expect」を使用して自動的にパスワードを送信することにより、それを実行するスクリプトを次に示します。

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

これを実行すると、「パスワード」の入力を求められますが、何が問題なのですか?

4

4 に答える 4

12

このexpectスクリプトがその役割を果たします( 「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
}
于 2013-02-28T11:50:15.773 に答える
11

私はSamとnikに同意しますが、あなたの質問に対する答えは、あなたが「Enterキーを押した」わけではないということです。

send "mypassword\r"
于 2009-06-26T04:46:39.123 に答える
5

他の誰かに拾われて他の場所で使用される可能性のあるようなスクリプトを残さないでください…代わりに公開鍵認証を試してください。セットアップは非常に簡単です。

于 2009-06-25T16:59:53.820 に答える
-5

あなたがやろうとしていることから、公開鍵と秘密鍵で ssh を使用するほうがよいように思えます。開始するには、ssh-keygen チュートリアルをグーグルで検索できます。

于 2009-06-25T16:55:34.277 に答える