2

我可以使用本地 git 存储库运行 jenkins 构建,但只能使用无密码 ssh 密钥。当我有密码时,我开始在构建中遇到权限问题。

我如何配置詹金斯使用密码?

- 我也是 ssh 的新手。这是我如何配置我的詹金斯(在 ubuntu 上)。

su jenkins
ssh-keygen ....
cat key.pub

su user_with_github_repo
cd ~/.ssh/
append jenkins key.pub to authorized_keys
4

1 回答 1

8

您遇到的问题可能是由于 ssh 会以交互方式询问密码。我建议不要尝试在脚本中以非交互方式输入密码,因为这似乎在安全性方面几乎没有增加。

相反,您可以使用 ssh-agent 和 ssh-add 来解锁密钥并将其保存在内存中。ssh-add 将密钥添加到 ssh-agent,这是一个守护进程。您将在服务器启动时解锁密钥,然后 Jenkins 将能够使用存储在内存中的密钥进行身份验证。

为此,请在服务器启动时运行 ssh-agent 并将其输出(两个导出,SSH_AUTH_SOCK 和 SSH_AGENT_PID)捕获到文件中。它应该以 jenkins 用户身份运行。使用 ssh-add 解锁密钥。然后在您想要使用该密钥授权时获取输出文件,例如在您的 Jenkins 构建脚本中。瞧!

于 2012-06-11T12:37:19.413 回答