-o password_stdin
freeBSD gibi tüm sistemlerde çalışmıyor gibi görünüyor. vs
de kullanabilirsiniz expect
Tercüman, sshfs ile çalışmalıdır ve hile yapmak gerekir.
Başka bir çözüm sshpass
, örneğin / var / www dizinini yedeklediğinizi varsayalım
Yedekleme:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
yedekleme dosyasını yedekleme sunucusuna yükleme
sshpass -p "your_password" scp -r backup_user@target_ip:/home/ /backup/$name
Bu yüzden bugünün yedeği ile dizin yükleyecek
Ama yine de, daha yüksek olarak söylendiği gibi, en iyi (güvenli ve basit) yol ssh anahtar çiftini kullanmak
olacaktır. eşleştirmeniz gerekir, ancak yedeklemek istediğiniz tüm sunucularda bir şifreyi düz metin biçiminde tutmaktan daha iyidir :),
Anahtar Çifti Doğru Şekilde Oluşturma
Yerel sunucuda
ssh-keygen -t rsa
Uzak Sunucuda
ssh root@remote_servers_ip "mkdir -p .ssh"
Oluşturulan Ortak Anahtarları Uzak Sunucuya Yükleme
cat ~/.ssh/id_rsa.pub | ssh root@remote_servers_ip "cat >> ~/.ssh/authorized_keys"
Uzak sunucuda İzinleri Ayarlama
ssh root@remote_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
Oturum aç
ssh root@remote_servers_ip
SSH Protokolü v2'yi etkinleştirme
/ etc / ssh / sshd_config içinde "Protokol 2" uncomment
sshd'de ortak anahtar yetkilendirmesini etkinleştirme
/ etc / ssh / sshd_config içinde "PubkeyAuthentication yes" komutunu kaldırın
/ Etc / ssh / sshd_config içinde StrictModes evet olarak ayarlanırsa,
restorecon -Rv ~/.ssh