Назад | Перейти на главную страницу

Вам нужен -e ssh для rsync?

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

Каждый раз, когда вам нужны дополнительные параметры для команды ssh вне пользователя и хоста, вам понадобится флаг -e. Возможно, сервер, к которому вы подключаетесь, прослушивает ssh на порту 2222.

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

Вместо того, чтобы обойти это, вы можете использовать 2 файла. /etc/ssh/ssh_config или ~/.ssh/config

Конфигурационный файл использует тот же формат, что и ssh_config. Его просто можно настроить для каждого пользователя!

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

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

Это зависит от того, что было указано для --with-rsh параметр configure во время компиляции. По умолчанию теперь используется ssh, если эта опция не была указана. Когда-то в прошлом это был rsh, но даже если это rsh, в этом может быть нет необходимости, поскольку ssh может быть реализацией rsh по умолчанию на многих устройствах. На всех моих машинах, например readlink -f $(which rsh) показывает, что rsh на самом деле просто символическая ссылка, указывающая на / usr / sbin / ssh