ฉันต้องการตั้งค่างาน RSync ที่จะเชื่อมต่อผ่าน SSH
ฉันมีคอมพิวเตอร์ของฉัน (backup @ myhost) และโฮสต์ระยะไกล (test @ remhost) และฉันต้องการสำรองข้อมูลโฟลเดอร์ ~ / บางสิ่งที่มีเนื้อหาทั้งหมด การทดสอบผู้ใช้ ssh มีเพียงการอ่านไฟล์และโฟลเดอร์ทั้งหมดใน ~ / โฟลเดอร์ ฉันต้องการใช้ rsync เพื่อคัดลอกโฟลเดอร์ test @ remhost: ~ / something ไปยังโฟลเดอร์ backup @ myhost: ~ / bak
เพื่อจุดประสงค์นี้ฉันใช้คำสั่งต่อไปนี้ผ่าน BASH บน Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
หลังจากกดปุ่มฉันได้รับสิ่งนี้:
test@remhost's password:
ฉันพิมพ์รหัสผ่านและ rsync ทำงานได้
ฉันต้องการให้คำสั่งด้านบนป้อนรหัสผ่านโดยอัตโนมัติและส่งเป็นพารามิเตอร์หรือป้อนโดยอัตโนมัติและเริ่มงาน
ฉันพยายามเรียกใช้rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
แต่ก็ยังขอรหัสผ่านและมันน่ารำคาญ
ฉันไม่ต้องการได้ยินเกี่ยวกับคีย์ชนิดใด ๆ (RSA, DSA หรืออื่น ๆ ) ฉันแค่ต้องการคำสั่งง่ายๆที่จะเข้าสู่ระบบและทำงาน
แก้ไข:สถานการณ์ที่เป็นไปได้อาจเกิดขึ้นหากการรับรองความถูกต้องของรหัสสาธารณะถูกปิดใช้งานและคุณไม่สามารถเปลี่ยนแปลงได้ เช่นถ้าคุณใช้ OpenSSH คุณจะต้องใช้สิทธิ์ root บนเซิร์ฟเวอร์เพื่อแก้ไขไฟล์และเพื่อเพิ่มsshd_config
PubkeyAuthentication yes
แก้ไข:นี่คือสิ่งที่ได้ผลที่สุดสำหรับฉัน:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
โปรดทราบว่าวิธีนี้ไม่ถือว่าปลอดภัยเนื่องจากจะส่งรหัสผ่านเป็นข้อความธรรมดาและมีความเสี่ยงต่อการโจมตีจากคนกลาง ขอแนะนำให้ใช้คีย์การพิสูจน์ตัวตนเพื่อความปลอดภัยที่สูงขึ้น