У меня есть скрипт на Python. В этом я использую rsync
для передачи данных между двумя системами. Во время работы запрашивает пароль для передачи данных. Так что я создаю запуск без пароля с помощью приведенной ниже команды.
ssh-keygen -t dsa
ssh-copy-id -i $HOME/.ssh/id_dsa.pub root@192.168.0.101
Теперь все работает нормально. Во время работы моего скрипта Python данные могут передаваться без запроса пароля. Но проблема в том, что я создаю задание crontab и запускаю свой скрипт при каждой перезагрузке, что означает, что каждый раз, когда система включена, код будет выполняться автоматически.
В этой ситуации при перезагрузке мой скрипт начинает выполняться. Но он попросил пароль системы назначения для передачи данных (откройте одно маленькое диалоговое окно на имя openssh
).
Что делать при перезагрузке системы, не нужно спрашивать пароль.
Примечание: если я должен запустить свой скрипт вручную, он не сможет запросить пароль. Данные могут быть переданы в целевую систему отлично.
Если вы знаете, пожалуйста, научите меня. Я жду.
Я думаю, что ваш ssh-ключ был сгенерирован для вашей учетной записи обычного пользователя (хранится в /home/user/.ssh/id_dsa
).
Однако, перезагрузка cron, вероятно, выполняется пользователем root, который ищет ключ ssh как /root/.ssh/id_dsa
Возможные решения:
rsync -e "ssh -i /home/user/.ssh/id_dsa"
в корневом каталоге, чтобы root использовал ваш пользовательский ключ ssh