-o password_stdin
sepertinya tidak bekerja pada semua sistem, misalnya freeBSD. dll.
Anda juga dapat menggunakan expect
Interpreter, itu harus bekerja dengan sshfs dan harus melakukan trik.
Solusi lain akan sshpass
, misalnya, katakanlah Anda mencadangkan direktori / var / www
Mencadangkan:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
mengunggah file cadangan ke server cadangan
sshpass -p "your_password" scp -r backup_user@target_ip:/home/ /backup/$name
Jadi itu akan mengunggah direktori dengan cadangan hari ini.
Tapi tetap saja, seperti yang dikatakan lebih tinggi, cara terbaik (aman dan sederhana) adalah dengan menggunakan pasangan kunci ssh.
Satu-satunya ketidaknyamanan adalah Anda harus melalui proses pembuatan kunci sekali di setiap server Anda perlu memasangkan, tetapi lebih baik daripada menyimpan kata sandi dalam format teks biasa di semua server yang ingin Anda buat cadangannya :),
Membuat Kunci Pasangkan dengan cara yang Benar
Di server lokal
ssh-keygen -t rsa
Di Server jauh
ssh root@remote_servers_ip "mkdir -p .ssh"
Mengunggah Kunci Publik yang Dihasilkan ke Server Jarak Jauh
cat ~/.ssh/id_rsa.pub | ssh root@remote_servers_ip "cat >> ~/.ssh/authorized_keys"
Tetapkan Izin di Server jarak jauh
ssh root@remote_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
Gabung
ssh root@remote_servers_ip
Mengaktifkan SSH Protocol v2
batalkan komentar "Protokol 2" di / etc / ssh / sshd_config
mengaktifkan otorisasi kunci publik di sshd
batalkan komentar "PubkeyAuthentication yes" di / etc / ssh / sshd_config
Jika StrictModes diatur ke yes di / etc / ssh / sshd_config, maka
restorecon -Rv ~/.ssh