Возникла очень странная проблема. Я создал небольшой скрипт bash, который запускает команду на удаленном хосте через ssh (используя аутентификацию с открытым ключом).
Когда я запускаю этот скрипт вручную из командной строки, он работает нормально, но когда он помещается в /etc/cron.hourly, он завершается неудачно с Permission denied, please try again.
ошибка.
- Я явно установил ключ в скрипте, используя
ssh -i /root/.ssh/id_rsa user@remote "command"
; - скрипт запускается с правами root (я добавил
echo `id` > /tmp/whoami.log
для двойной проверки); а также - ключ ssh не защищен паролем ...
Система является сервером Ubuntu 12.04, у меня нет большого доступа на удаленной стороне для устранения неполадок, но, как я уже сказал, работает ssh вручную или тот же скрипт bash из командной строки.
Любая идея, почему это происходит или как это исправить ??
Обновить
Оказывается, я ошибся, и ключ ssh был защищен паролем (с помощью цепочки ключей, загружающей ssh-agent), поэтому он не работал из сценария, но не при запуске из сеанса bash. . ~/.keychain/$HOSTNAME-sh
в моем скрипте решил проблему (спасибо @grawity, который указал мне верное направление и дал исчерпывающий ответ).