这是我的设置:
- Jenkins 作为“jenkins”用户在我的 linux 机器上运行。
- 我已经为“jenkins”用户生成了一个 ssh 密钥对,如Linux - Setup Git中所述。
- 当我
sudo su jenkins
尝试ssh -vT git@github.com
时,我总是被问到我的密码,但我总是最终被认证。(详细选项显示使用了哪个键等)。 - 我可以使用 jenkins 从 GitHub 克隆我的仓库:
因此:
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
这与我输入密码时遇到的错误相同(但当然,Jenkins 不会要求我输入密码)。以下页面:
告诉我 ssh-agent 可以帮助记住密码,当我使用自己的用户时它会这样做,但不是jenkins id。请注意,以我的普通用户身份运行时会产生:
echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh
在运行与我的“詹金斯”相同的命令时,什么也没有产生(甚至权限被拒绝)
我对这个问题的理解是密码不记得了。你有什么主意吗?我应该为 jenkins 用户启动一个 ssh-agent 或密钥环管理器吗?如何?或者转发到同一台机器时ssh转发是否合适?有什么更好的主意吗?
ps:我从来没有sudo gitted
,我总是使用 jenkins 或我的用户帐户(如这篇 SO 帖子 - Ubuntu/GitHub SSH Key Issue中所述)