Bạn có cần -e ssh cho rsync không?


22

Tôi luôn sử dụng lệnh sau khi sao chép từ máy chủ : rsync --progress -avze ssh user@host:/path/to/files ./here. Tuy nhiên, một người bạn của tâm trí đã cho tôi thấy rằng tôi chỉ có thể làm được rsync --progress -avz user@host:/path/to/files ./here. Vì vậy, câu hỏi là, nếu bạn không cần -e sshtại sao nó vẫn có?

Câu trả lời:


20

Bất cứ lúc nào bạn cần các tùy chọn bổ sung cho lệnh ssh bên ngoài người dùng và máy chủ lưu trữ, thì bạn cần cờ -e. Có lẽ máy chủ bạn đang kết nối có nghe ssh trên cổng 2222.

rsync -e 'ssh -p 2222' /source usr@host:/dest

Một cách khác để giải quyết vấn đề này, có 2 tệp bạn có thể sử dụng. /etc/ssh/ssh_confighoặc là~/.ssh/config

Các tập tin cấu hình sử dụng định dạng tương tự như ssh_config. Nó chỉ có thể được cấu hình trên cơ sở cho mỗi người dùng!


9

Bạn cũng sẽ cần -enếu bạn sử dụng vị trí khóa riêng không mặc định, nghĩa là chỉ định khóa riêng thông qua -e 'ssh -i /path/to/private/key/file.pem'. Đối với vấn đề đó, các cổng nghe không mặc định cho sshd, cũng. Về cơ bản, sử dụng -enếu chỉ sử dụng ssh user@hostkhông hoạt động.


-imột tùy chọn cho ssh hoặc rsync trong ví dụ của bạn? Và nếu nó là cho ssh, nó có hoạt động mà không có dấu ngoặc đơn xung quanh lệnh không?
Izkata

Oh, phải, tôi cần báo giá. Chỉnh sửa câu trả lời của tôi bây giờ.
cjc

8

Bạn không cần -e ssh để sử dụng ssh. Thực tế, nếu bạn chỉ định mục tiêu là user @ host: / path / to / files, bạn đang sử dụng ssh theo mặc định. Nó còn lại trong a) vì lý do tương thích và b) trường hợp rìa trong đó bạn có thể có sự kết hợp của máy chủ rsyncd và ssh.


2
Ví dụ, nó được yêu cầu trên RHEL 3 vì RSYNC_RSH mặc định là 'rsh'.
Kyle Smith

5

Nó phụ thuộc vào những gì đã được chỉ định cho --with-rshtùy chọn cấu hình tại thời gian biên dịch. Mặc định bây giờ là ssh nếu tùy chọn này không được chỉ định. Nó đã từng là rsh tại một thời điểm trong quá khứ, tuy nhiên ngay cả khi đó là rsh, điều đó có thể không cần thiết vì ssh có thể là triển khai rsh mặc định trên nhiều hộp. Trên tất cả các máy của tôi, ví dụ readlink -f $(which rsh)cho thấy rsh thực sự chỉ là một liên kết tượng trưng trỏ đến / usr / sbin / ssh

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.