Я всегда использовал следующую команду при копировании с сервера: 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