这是我的设置:
- Jenkins 在我的 Linux 机器上以“jenkins”用户身份运行。
- 我已经生成了一个 ssh 密钥对,如中所述Linux - 设置 Git http://help.github.com/linux-set-up-git/,对于“jenkins”用户。
- When I
sudo su jenkins
并尝试ssh -vT [email protected] /cdn-cgi/l/email-protection
,我总是被问到我的密码,但我总是最终经过身份验证。 (详细选项显示使用哪个键等)。
- 我可以使用 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 个可能的问题/解决方案:
-
id_rsa 使用错误的用户创建
创建 id_rsa 作为 jenkins 用户(参见Hudson 无法从 git 存储库获取 https://stackoverflow.com/questions/8910848/hudson-cannot-fetch-from-git-repository)
-
将密码留空
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)