Joh*_*nak 5 git ssh ubuntu cron
我已经创建了一个 SSH 密钥(按照官方教程),将它添加到 GitHub 并创建了一个 Bash 脚本,该脚本提交并将单个文件推送到我在 Github 上的存储库。当我从命令行运行这个脚本时,一切正常并且更新被推送。但是,当我使用 设置作业时crontab -e,推送会生成以下错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我已经编辑了用户的 crontab ( crontab -e),即我没有使用sudo crontab -e. 我正在运行 Ubuntu 12.04。
如果不是用户问题(以 root 身份运行作业,缺少正确的 $HOME/.ssh 文件夹),则可能是密码问题:
原来我错了,ssh 密钥受密码保护(钥匙串加载 ssh 代理),因此为什么它从脚本中失败,但在从 bash 会话运行时却没有。
添加. ~/.keychain/$HOSTNAME-sh到我的脚本解决了这个问题。
密码位在“无法使用 Crontab 中的 shell 脚本通过 ssh 连接到远程机器”中有详细说明:
您可以在 cron 会话中建立 ssh 连接。您需要的是设置公钥身份验证以进行无密码访问。
为此,您需要PubkeyAuthentication yes在每个远程服务器的sshd_config.
| 归档时间: |
|
| 查看次数: |
2984 次 |
| 最近记录: |