rsync: không thể thoát khỏi dấu nhắc mật khẩu


5

Tôi đang cố chạy rsync để sao chép tệp (Centos 5.2 -> Centos 5.2) và tôi cần chạy bằng cách sử dụng nohup để nó có thể chạy sau khi tôi ngắt kết nối phiên ssh của mình. Vấn đề là tôi không thể nhận được rsync để không nhắc cho passowrd và tôi không thể nhận nohup để chơi tốt với dấu nhắc mật khẩu.

rsync -v -r -x --password-file=/root/password.txt /sourcedir/ root@10.1.1.1:/destdir

Tôi đã thử cả hai cách đặt biến RSYNC_PASSWORD thành mật khẩu và tạo một tệp bằng mật khẩu và sử dụng --password-file, nhưng trong cả hai trường hợp đó tôi vẫn nhận được lời nhắc hỏi mật khẩu.

Làm thế nào để tôi cung cấp cho rsync mật khẩu cần thiết để nó sẽ chạy hạnh phúc?

Câu trả lời:



7

Vấn đề là RSYNC_PASSWORD cũng như --password-file chỉ có thể áp dụng khi kết nối trực tiếp với máy chủ rsyncd, chứ không phải khi sinh ra rsync bằng shell từ xa như ssh. Các lựa chọn của bạn, tùy thuộc vào dữ liệu bạn đang truyền, để thiết lập các khóa ssh không có mật khẩu hoặc để bắt đầu sử dụng một daemon rsyncd thay thế.

(Lưu ý rằng nếu bạn kết nối trực tiếp với rsyncd thì dữ liệu của bạn sẽ được chuyển không bị mã hóa.)


3

Ngoài ra, bạn có thể sử dụng màn hình thay vì nohup. Nó hoạt động như thế này:

  • thể loại screen
  • bạn sẽ được trình bày với một thiết bị đầu cuối mới
  • bắt đầu lệnh của bạn sẽ mất mãi mãi, lệnh rsync trong trường hợp của bạn.
  • ngắt kết nối với thiết bị đầu cuối màn hình của bạn với ctrl-a, theo sau là d
  • bạn có thể thoát ngay bây giờ hoặc làm những thứ khác, thiết bị đầu cuối màn hình của bạn sẽ tiếp tục làm công việc của bạn
  • bạn có thể kết nối lại với màn hình, bằng cách gõ screen -r, alose này hoạt động từ một kết nối tty hoặc ssh khác hoặc bất cứ điều gì.

1
Hoặc bạn chỉ có thể sử dụng một phím ssh.
Ignacio Vazquez-Abrams

Có những trường hợp chúng tôi phải sao lưu hoặc tự động chuyển tập tin từ các hệ thống là di sản hoặc vì bất kỳ lý do gì không hỗ trợ các khóa SSH.
Charlie Schliesser

0

Rsync sẽ tiếp tục nhắc mật khẩu miễn là nó được thực hiện trên máy chủ ssh và tùy chọn tốt nhất có thể sẽ là thêm xác thực khóa chung cho ssh. Vì vậy, để bắt đầu với:

trên máy chủ nguồn -

$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:

Bây giờ sao chép khóa công khai ssh tại

~/.ssh/id_rsa.pub

trên máy chủ từ xa tại:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

hoặc cách khác, bạn có thể cài đặt ssh-pass và chạy:

SSHPASS='myPassword'
/usr/bin/rsync -a -r -p -o -g --progress -s -u --rsh="/usr/bin/sshpass -p $SSHPASS ssh -o StrictHostKeyChecking=no -l root"  /sourcedir/ root@10.1.1.1:/destdir  >&2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.