4
ssh权限仅在cron作业中被拒绝
有一个非常奇怪的问题。我创建了一个小的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复查中添加了a );和 ssh密钥不受密码保护... 该系统是Ubuntu 12.04服务器,我在远程端没有太多访问权限来进行故障排除,但是正如我所说,手动运行ssh或从命令行运行相同的bash脚本即可。 知道为什么会这样或如何解决吗? 更新 原来我弄错了,并且ssh密钥受密码保护(通过钥匙串加载ssh-agent),因此为什么它从脚本失败而不是从bash会话运行时失败。将. ~/.keychain/$HOSTNAME-sh脚本添加到我的脚本即可解决问题(感谢@grawity指出了正确的方向并提供了完整的答案)。