Menyalurkan 'sshfs password'
dengan <<<
ke -o password_stdin
bekerja di bash:
sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'
Menurut manual, ada opsi -o password_stdin
yang memungkinkan untuk membaca kata sandi dari input standar, yang mungkin merupakan pengalihan. Saya belum pernah menggunakannya, jadi saya berspekulasi.
Karena itu, saya sangat tidak menyarankan solusi semacam itu yang pada dasarnya tidak aman.
ssh
bekerja sangat baik dengan sistem kunci privat/publik. Sederhana dan aman. Tidak perlu memasukkan kata sandi atau menuliskannya dengan jelas di skrip shell. Cukup tekan kunci publik Anda di server dan Anda dapat langsung terhubung.
-o password_stdin
tampaknya tidak bekerja pada semua sistem, misalnya freeBSD. dll.
Anda juga dapat menggunakan expect
Penerjemah, itu harus bekerja dengan sshfsand harus melakukan triknya.
Solusi lain adalah sshpass
, misalnya, Anda sedang 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 [email protected]_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 satu kali di setiap server yang perlu Anda pasangkan, tetapi ini lebih baik daripada menyimpan kata sandi dalam format teks biasa di semua server yang ingin Anda cadangkan :),
Membuat Pasangan Kunci dengan Cara yang Benar
-
Di server Lokal
ssh-keygen -t rsa
-
Di Server jarak jauh
ssh [email protected]_servers_ip "mkdir -p .ssh"
-
Mengunggah Kunci Publik yang Dihasilkan ke Server Jarak Jauh
cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Tetapkan Izin di Server jarak jauh
ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Masuk
ssh [email protected]_servers_ip
-
Mengaktifkan Protokol SSH v2
hapus komentar "Protokol 2" di /etc/ssh/sshd_config
-
mengaktifkan otorisasi kunci publik di sshd
hapus komentar "PubkeyAuthentication yes" di /etc/ssh/sshd_config
-
Jika StrictModes disetel ke yes di /etc/ssh/sshd_config lalu
restorecon -Rv ~/.ssh