gpt4 book ai didi

git - EC2/AWS、 Jenkins 、Git、SSH

转载 作者:太空狗 更新时间:2023-10-29 13:23:41 25 4
gpt4 key购买 nike

[更新2]那么当我从 CLI 运行 git 时提示我输入密码可以吗?我能够使用 ssh 私钥的密码访问 github 服务器,但 Jenkins 中从未提示我这样做或要求我提供它。[/更新2]

[更新]是的。我在 EC2 上的 ubuntu 实例上运行它。我在/var/lib/jenkins/.ssh 中生成了 ssh key ,这是 Jenkins 创建的用户。我在 Jenkins 中设置了安全选项以使用 Unix 用户/组。[/更新]

我正在尝试让 Jenkins 从 git (github) pull 。我收到以下错误:

hudson.plugins.git.GitException: Could not clone [my personal repo]
at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1121)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1063)
at hudson.FilePath.act(FilePath.java:832)
at hudson.FilePath.act(FilePath.java:814)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1063)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
at hudson.model.Run.run(Run.java:1434)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:239)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@github.com:bobbylo/Verbify.git /var/lib/jenkins/.jenkins/jobs/build_dev/workspace" returned status code 128:
stdout: Initialized empty Git repository in /var/lib/jenkins/.jenkins/jobs/build_dev/workspace/.git/

stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我已经完成了 Github ssh 教程。我在 EC2 实例上生成了私钥。将其放入用户 jenkins 的 .ssh 目录中。将公钥放在 Github 上(同时尝试部署 key + 普通 SSH key )。我已经验证我可以进行 git 在线操作( pull 、克隆等),并且它可以从 CLI 与用户一起工作。我已经为用户正确设置了 unix 用户/组权限(事实上,当我更改它时,我在 Jenkin 的控制台日志中看到错误日志更改)。当我尝试使用 Jenkin git 插件或执行 Jenkins shell 命令时,出现上述错误。

我已经阅读了有关 ssh-agent 和 ssh-add 的内容,以及如何将它绑定(bind)到您的 shell 启动脚本,这样您就不需要为每个命令输入密码——我不确定这是否与此相关。

否则我不确定还能尝试什么。任何提示都会有所帮助!

最佳答案

想通了:

-事实证明,如果您不是将它作为守护进程运行,它会使用您运行它的 shell 环境。- 结果还显示任何需要用户提示的 cmd(如 ssh 释义)Jenkins 都将其视为错误。

目前的解决方案是:

-在我通过 ssh-add 将 github 发布 key 添加到 ssh-agent 后运行 Jenkins,这样它就不会提示解释。

如果我想将 Jenkins 作为守护进程运行,我想在运行它之前必须正确设置 ssh-agent(我不认为它使用当前的 shell 环境?)。

关于git - EC2/AWS、 Jenkins 、Git、SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com