Saya membuat skrip cadangan kecil menggunakan sshfs
:
sshfs backup_user@target_ip:/home /mnt/backup
Apakah ada cara untuk memasukkan kata sandi dalam perintah ini?
Atau ada solusi transfer file lain di mana kata sandi login dapat dimasukkan selain dari FTP / SFTP?
Jawaban:
-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 / wwwMencadangkan:
mengunggah file cadangan ke server cadangan
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
Di Server jauh
Mengunggah Kunci Publik yang Dihasilkan ke Server Jarak Jauh
Tetapkan Izin di Server jarak jauh
Gabung
Mengaktifkan SSH Protocol v2
mengaktifkan otorisasi kunci publik di sshd
Jika StrictModes diatur ke yes di / etc / ssh / sshd_config, maka
sumber
Menurut manual, ada opsi
-o password_stdin
yang memungkinkan untuk membaca kata sandi dari input standar, yang mungkin bisa menjadi pengalihan. Saya belum pernah menggunakannya, jadi saya berspekulasi.Yang mengatakan, saya sangat menyarankan solusi seperti itu yang secara inheren tidak aman.
ssh
berfungsi sangat baik dengan sistem kunci privat / publik. Sederhana dan aman. Tidak perlu memasukkan kata sandi atau menuliskannya dengan jelas dalam skrip shell. Tekan saja kunci publik Anda di server dan Anda dapat terhubung dengan segera.sumber
printf "my_password\n" | sshfs username@hostname:/remote_fs $HOME/local_dir
-o password_stdin
opsi apa pun .printf "my_password\n" | sshfs -o password_stdin user@hostname:/ $HOME/local_dir
PS Saya menggunakan Debian Buster PPS Ini berfungsi, tetapi meminta kata sandi:sshfs -o password_stdin user@hostname:/ $HOME/local_dir
Pipa yang
"sshfs password"
dengan<<<
untuk-o password_stdin
bekerja pada bash:sumber
Opsi "-o password_stdin" adalah yang memungkinkan Anda untuk memasang kata sandi.
Yang mengatakan, kunci adalah pilihan yang lebih baik, kecuali jika penyedia layanan Anda tidak membiarkan Anda menggunakannya untuk sftp. (Ini adalah salah satu kegagalan WP Engine.)
sumber
Pasang skrip:
Lepas dari:
sumber
Satu hal yang perlu diingat adalah bahwa jika Anda menggunakan
-o password_stdin
opsi, itu mungkin tampak tidak berfungsi karena sshfs akan bertanya apakah akan terhubung ke host atau tidak (jika ini adalah pertama kalinya Anda terhubung ke sana dan itu tidak ditambahkan ke file host yang dikenal). Jika Anda menjalankannya dalam batch Anda tidak akan pernah melihat sshfs bertanya. Solusi untuk menghindari ini adalah:-o StrictHostKeyChecking=no
opsi ke sshfs atausumber
Script otomatis untuk menghubungkan sftp dengan sshfs
sumber