SCPまたはSFTPのパスワード入力を自動化する方法は?

SCPまたはSFTPのパスワード入力を自動化する方法は?

scpファイルを別のサーバーにバックアップするコマンドを入力するスクリプトがあります。ところで実行すればパスワードを聞いてみました。これを自動化する方法はありますか? CentOS 5.6を使用しています。私はガイドをほとんど見たことがなく、spawn私がそれを使用するときにコマンドを使用していると言います-bash: spawn: command not found

#!/usr/bin/expect -f

# connect via scp
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact

答え1

キーベースの認証と空のパスワードを使用してください。パスワードを求められません。

フォローするこれらスピード。

答え2

「Expect」がインストールされていることを確認してください。 「yum」を使用するLinuxディストリビューションでは、rootとして実行します。# yum install expect次に、次のように入力してスクリプトの予想されるパスが正しいことを確認します。$ which expect /usr/bin/expect 返されたパスはスクリプトの先頭に配置されます。 # !/usr /bin/期待-f

答え3

スポーンが正しく機能しない場合は、意図したインストールを確認する必要があります。パスワード転送は次のように自動化できます。

spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp

expect {
"assword:" {
    send "MyPassword\r"
    # you can send remote commands here..
}
"yes/no)?" {
    send "yes\r"
    sleep 2
    exp_continue
}
timeout {
    puts "\nError: timed out.\n"
    exit
}
}

関連情報