Я следовал следующему руководству по настройке Rsync с SSH между моей локальной машиной и удаленным сервером:

Я выполнил ниже как root:

  1. rsync -avz -e ssh /home/user/dir root@192.168.200.10::Backup/dir -> запрашивает пароль

  2. ssh-keygen -> Ключ сгенерирован

  3. ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10 -> подтверждение того, что ключи были скопированы

  4. ssh 192.168.200.10 -> Доступ к удаленному серверу без запроса пароля

  5. rsync -avz -e ssh /home/user/dir root@192.168.200.10::Backup/dir -> Запрашивает пароль

Разве не странно, что я могу подключиться по SSH к удаленному серверу без запроса пароля, но при использовании rsync?

Я вижу .ssh/authorized_keys на удаленном сервере.

Где я делаю не так?

2 ответа2

1

Вы смешиваете два отдельных режима подключения: с удаленной оболочкой (-e ssh) и без удаленной оболочки через rsync daemon (идентифицируемый двойным двоеточием).

В руководстве говорится:

ПОДКЛЮЧЕНИЕ К RSYNC-СЕРВЕРУ

Также можно использовать rsync без удаленной оболочки в качестве транспорта. В этом случае вы будете подключаться к удаленному rsync-серверу, работающему по TCP-порту 873.

...... либо вы используете двойное двоеточие :: вместо одного двоеточия для отделения имени хоста от пути, либо вы используете URL rsync://.

....... Некоторые пути на удаленном сервере могут требовать аутентификации. Если это так, вы получите запрос пароля при подключении. Вы можете избежать запроса пароля, установив для переменной среды RSYNC_PASSWORD пароль, который вы хотите использовать, или используя параметр --password-file. Это может быть полезно при написании скриптов rsync.

Вероятно, самый простой способ получить аутентификацию без пароля для вас - это изменить приведенную выше команду следующим образом:

   rsync -avz -e ssh /home/user/dir root@192.168.200.10:/absolute/path/to/Backup/dir
1

Ваше имя пользователя в локальной учетной записи, вероятно, не root , это имя пользователя, которое вы используете в Rsync.

ssh remotehost

... фактически так же, как:

ssh localUserName@remotehost

Извините, я не заметил, что вы уже сказали, что вы работаете от имени пользователя root.

Я также не заметил, что вы используете синтаксис модуля с двумя двоеточиями (:::) после имени удаленного хоста. Я не думаю, что руководство, которым вы следовали, касается подключения к Rsync таким образом, и что у вас должно быть все в порядке, если вы используете синтаксис с одиночной двоеточием, например:

rsync -avz -e ssh /home/user/dir root@192.168.200.10:/some/path/backups/dir

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .