Tôi muốn thiết lập một công việc RSync sẽ kết nối thông qua SSH.
Tôi có máy tính của mình (backup @ myhost) và máy chủ từ xa (test @ remhost) và tôi cần sao lưu thư mục ~ / một cái gì đó với tất cả nội dung của nó. Kiểm tra người dùng ssh chỉ có quyền truy cập READ vào tất cả các tệp và thư mục trong thư mục ~ /. Tôi muốn sử dụng rsync để sao chép thư mục test @ remhost: ~ / Something vào thư mục backup @ myhost: ~ / bak.
Với mục đích này, tôi sử dụng lệnh sau qua BASH trên Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Sau khi nhấn enter tôi nhận được điều này:
test@remhost's password:
Tôi gõ mật khẩu và rsync hoạt động.
Tôi muốn thực hiện lệnh trên để tự động nhập mật khẩu và chuyển nó dưới dạng tham số hoặc tự động nhập mật khẩu và bắt đầu công việc.
Tôi đã thử thực thi rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
nhưng nó vẫn hỏi mật khẩu và thật khó chịu.
Tôi không muốn nghe về bất kỳ loại khóa nào (RSA, DSA hoặc bất kỳ loại nào khác). Tôi chỉ muốn một lệnh đơn giản sẽ đăng nhập và thực hiện công việc.
EDIT: Một kịch bản có thể xảy ra, nếu xác thực khóa chung bị tắt và bạn không thể thay đổi điều này. Ví dụ: nếu bạn sử dụng OpenSSH, bạn cần có quyền root trên máy chủ để chỉnh sửa tệp sshd_config
và thêm PubkeyAuthentication yes
.
EDIT: Đây là những gì cuối cùng đã làm việc cho tôi:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Xin lưu ý rằng phương pháp này không được coi là an toàn vì nó sẽ gửi mật khẩu ở dạng văn bản đơn giản và nó dễ bị tấn công bởi người trung gian. Người ta khuyên nên sử dụng khóa khai thác chính để bảo mật mạnh hơn.