rsync проблема с паролем

У меня есть скрипт на Python. В этом я использую rsync для передачи данных между двумя системами. Во время работы запрашивает пароль для передачи данных. Так что я создаю запуск без пароля с помощью приведенной ниже команды.

ssh-keygen -t dsa 
ssh-copy-id -i $HOME/.ssh/id_dsa.pub root@192.168.0.101

Теперь все работает нормально. Во время работы моего скрипта Python данные могут передаваться без запроса пароля. Но проблема в том, что я создаю задание crontab и запускаю свой скрипт при каждой перезагрузке, что означает, что каждый раз, когда система включена, код будет выполняться автоматически.

В этой ситуации при перезагрузке мой скрипт начинает выполняться. Но он попросил пароль системы назначения для передачи данных (откройте одно маленькое диалоговое окно на имя openssh).

Что делать при перезагрузке системы, не нужно спрашивать пароль.

Примечание: если я должен запустить свой скрипт вручную, он не сможет запросить пароль. Данные могут быть переданы в целевую систему отлично.

Если вы знаете, пожалуйста, научите меня. Я жду.

-2
задан 4 August 2012 в 16:34

1 ответ

Я думаю, что ваш ssh-ключ был сгенерирован для вашей учетной записи обычного пользователя (хранится в /home/user/.ssh/id_dsa).

Однако, перезагрузка cron, вероятно, выполняется пользователем root, который ищет ключ ssh как /root/.ssh/id_dsa

Возможные решения:

  • Поместите свой cron в пользовательский crontab с помощью [ 112], так что rsync / ssh будет запускаться вашим пользователем и использовать ключ ssh вашего пользователя.
  • Сгенерируйте ключ ssh для пользователя root и добавьте ключ на удаленный сервер.
  • Используйте rsync -e "ssh -i /home/user/.ssh/id_dsa" в корневом каталоге, чтобы root использовал ваш пользовательский ключ ssh
  • . осторожно, чтобы ваши ssh-ключи не были сгенерированы с защитой парольной фразы. В этом случае вам нужно будет ввести фразу-пароль вручную, чтобы разблокировать ключ ssh.
0
ответ дан 4 August 2012 в 16:34

Другие вопросы по тегам:

Похожие вопросы: