問題 cron で定期的にサーバに ssh して何かコマンドを実行したいという時があると思いますが,そのまま設定すると失敗します.公開鍵を正しく設定していても Permission denied と怒られます. Permission denied (publickey,keyboard-interactive). v オプションでデバッグすると秘密鍵が読めないということが分かりますが,シェルから実行しても問題は起きないのに cron からだと起きます. 原因と解決策 これは cron の実行時に ssh-agent の環境変数 SSH_AUTH_SOCK が設定されていないのが原因で,この値を crontab に設定してあげるとうまくいきます. % env | grep SSH_AUTH_SOCK SSH_AUTH_SOCK=/tmp/launch-gLshX6/Listeners# cr