Anda selalu dapat mengonfigurasi ssh tanpa kata sandi untuk mentransfer file menggunakan sftp tanpa pengguna dimintai kata sandi. Tetapi jika tidak diizinkan untuk mengonfigurasi ssh tanpa kata sandi, ada cara untuk mengotomatiskan transfer file sftp. Ini dapat dicapai dengan menggunakan 'berharap ' perintah yang disediakan oleh shell tcl.
Agar utilitas expect berfungsi, kita perlu menginstal paket "expect". Untuk melakukannya gunakan perintah di bawah ini :
# yum install expect
Di bawah ini adalah contoh skrip yang mengotomatiskan akses jarak jauh dengan file batch.
#!/bin/bash if (( $# < 3 )); then echo "Usage: $0 [remote addr] [password] [batch file]" echo echo -e "tremote addr : [loginid]:[host addr]n" exit fi REMOTE=$1 PASS=$2 BATCH=$3 expect -c " spawn sftp -o "batchmode no" -b "$BATCH" $REMOTE expect -nocase "password:" {send "$PASSr"; interact} "
Di sini,
spawn - to initiate the sftp process expect - it expects a particular string ( here it is "password:" prompt ) send - sends the password when the expect utility gets the required prompt.
Berikut ini contoh cara menjalankan script yang menjalankan perintah di testjob.bat pada remote.example.com setelah login sebagai root dengan password 'password'
# bash ./test.sh [email protected] password testjob.bat
UNIX / Linux :Apa izin yang benar dari direktori /tmp dan /var/tmp?
Cara mengatur login SSH tanpa kata sandi di Linux