Вам потрібен -e ssh для rsync?


22

Я завжди використовувати наступну команду при копіюванні з сервера: rsync --progress -avze ssh user@host:/path/to/files ./here. Однак друг розуму показав мені, що я можу просто зробити rsync --progress -avz user@host:/path/to/files ./here. Тож питання полягає в тому, якщо вам це не потрібно, -e sshнавіщо це взагалі?

Відповіді:


20

Коли вам потрібні додаткові параметри до команди ssh за межами користувача та хоста, тоді вам потрібен прапор -e. Можливо, сервер, до якого ви підключаєтесь, має ssh прослуховування на порту 2222.

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

Альтернативою для подолання цього є два файли, які ви можете використовувати. /etc/ssh/ssh_configабо~/.ssh/config

Конфігураційний файл використовує той самий формат, що і ssh_config. Це просто можна налаштувати на основі кожного користувача!


9

Вам також знадобиться, -eякщо ви використовуєте місце приватного ключа, що не використовується за замовчуванням, тобто вкажіть приватний ключ через -e 'ssh -i /path/to/private/key/file.pem'. У цьому питанні також прослуховуються порти прослуховування за замовчуванням для sshd. В основному, використовувати, -eякщо просто використання ssh user@hostне працює.


Чи -iє у вашому прикладі варіант для ssh чи rsync? А якщо це для ssh, чи працює він без єдиних лапок навколо команди?
Ізката

О, так, мені потрібні цитати. Редагування моєї відповіді зараз.
cjc

8

Вам не потрібно -e ssh, щоб використовувати ssh. Насправді, якщо ви вказали ціль як user @ host: / path / to / files, ви використовуєте ssh за замовчуванням. Залишається в а) з міркувань сумісності та б) бахромою випадків, коли у вас може бути комбінація хостів rsyncd та ssh.


2
Наприклад, для RHEL 3, наприклад, за замовчуванням RSYNC_RSH до "rsh".
Кайл Сміт

5

Це залежить від того, що було вказано для параметра --with-rshналаштування під час компіляції. За замовчуванням тепер ssh, якщо ця опція не була вказана. Раніше це було rsh у минулому, однак навіть якщо це rsh, це може бути не потрібно, оскільки ssh може бути реалізацією rsh за замовчуванням у багатьох полях. Наприклад, на всіх моїх машинах readlink -f $(which rsh)видно, що rsh - це справді просто посилання, що вказує на / usr / sbin / ssh

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.