在 Ubuntu 上使用 Jenkins 用户从 GitHub 获取时权限被拒绝(公钥)

2024-01-05

这是我的设置:

  1. Jenkins 在我的 Linux 机器上以“jenkins”用户身份运行。
  2. 我已经生成了一个 ssh 密钥对,如中所述Linux - 设置 Git http://help.github.com/linux-set-up-git/,对于“jenkins”用户。
  3. When I sudo su jenkins并尝试ssh -vT [email protected] /cdn-cgi/l/email-protection,我总是被问到我的密码,但我总是最终经过身份验证。 (详细选项显示使用哪个键等)。
  4. 我可以使用 jenkins 从 GitHub 克隆我的存储库:

Thusly:

jenkins@alpm:~/jobs/test git/workspace$ git pull 
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.

到目前为止,我已经严格按照指示进行操作。问题是 Jenkins 作业失败并出现以下错误:

status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

这与我输入密码时遇到的错误相同(但当然,詹金斯不会要求我提供密码)。以下页面:

  • GitHub - SSH 问题 http://help.github.com/ssh-issues/
  • 使用 SSH 代理转发 https://helpnext.github.com/articles/using-ssh-agent-forwarding

向我表明 ssh-agent 可以帮助记住密码,当我使用自己的用户时它会这样做,但不是jenkinsID。请注意,以普通用户身份运行时会产生:

echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh

运行与我的“jenkins”相同的命令时不会产生任何结果(甚至没有拒绝许可)

我对问题的理解是密码没有被记住。 你有什么主意吗? 我应该为 jenkins 用户启动 ssh-agent 或密钥环管理器吗?如何? 或者转发到同一台机器时ssh转发是否合适? 有更好的主意吗?

ps:我从来没有sudo gitted,我总是使用 jenkins 或我的用户帐户(如这篇 SO 帖子中提到的 -Ubuntu/GitHub SSH 密钥问题 https://stackoverflow.com/questions/4637908/ubuntu-github-ssh-keys-issue)


由于几个月来没有人根据评论写出答案,所以我很快就会这样做。

有 2 个可能的问题/解决方案:

  1. id_rsa 使用错误的用户创建

    创建 id_rsa 作为 jenkins 用户(参见Hudson 无法从 git 存储库获取 https://stackoverflow.com/questions/8910848/hudson-cannot-fetch-from-git-repository)

  2. 将密码留空

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ubuntu 上使用 Jenkins 用户从 GitHub 获取时权限被拒绝(公钥) 的相关文章

随机推荐