Jenkins:stderr:Permission denied(publickey)。致命错误:远程终端意外挂断。

3

我正在虚拟机上(redhat系统)搭建Jenkins服务器,已经成功设置并能够访问。但是在“管理Jenkins”页面创建构建任务时,当我输入Git代码库的链接时,出现如下错误 -

Failed to connect to repository : Command "git ls-remote -h ssh://git.aaa.aaaa.corp:XXXXX/BSA/myProject.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied (publickey). 
fatal: The remote end hung up unexpectedly

我尝试了很多关于SSH密钥的解决方案,但都没有帮助。

请帮忙。


我还没有使用我的Gerrit密钥配置Jenkins密钥。现在正在处理中... - Maxx
4个回答

9
  • 使用安装Jenkins的用户登录您的服务器,并将ssh密钥放置在主目录(cd ~)下。您应该拥有一个包含公钥和私钥的.ssh文件夹。
  • 进入您的Jenkins服务器:http://JenkinsMaster:Port/凭据并点击“添加凭据”
  • 选择SSH用户名和私钥
    • 范围为全局
    • 用户名为生成SSH密钥的用户
    • 从Jenkins主机的~/.ssh获取私钥
    • 添加描述,例如“GIT服务”
  • 在您的任务中,在选择GIT作为您的代码管理工具后,选择这些凭据(存储库下面名为凭据的字段)

祝您好运!


为什么我们需要执行这一步骤?- 使用您安装Jenkins的用户登录服务器,并将您的ssh密钥放置在主目录下(cd〜)。您应该拥有包含公钥和私钥的.ssh文件夹。 - Ramesh Pasham
取决于您所使用的Jenkins版本。在那个时间(2016年),在该Jenkins服务器上,将私钥放在主服务器上的唯一方法就是这样做。 - Dvir669

8

当你添加新的凭据以使用Jenkins时,私钥(.ssh/id_rsa)应由用户jenkins生成。

  1. 以jenkins用户身份运行命令:sudo -i -u jenkins
  2. 创建~/.ssh目录:mkdir ~/.ssh
  3. 进入~/.ssh目录:cd ~/.ssh
  4. 使用如下命令生成SSH密钥:ssh-keygen -t rsa -C "jenkins@git"
  5. 启动ssh-agent服务:eval "$(ssh-agent -s)"
  6. 将生成的私钥加入到ssh-agent中:ssh-add ~/.ssh/id_rsa
  7. 查看公钥并复制输出内容,将其添加到Git仓库中即可完成配置:cat id_rsa.pub done

只想强调一下阅读此帖子的人应该由名为“jenkins”的用户生成SSH密钥(而不是root用户或系统上的其他用户)。我犯了这个错误,所以不要重蹈覆辙! - ptk

0

登录Jenkins服务器 确保您的用户是Jenkins,如果不是,请运行:

sudo su jenkins 

导航到 /var/lib/jenkins/.ssh 如果您的 ssh 密钥不在这里,或者您想使用不同的密钥,请运行:

ssh-keygen -t rsa -f personalised_key_name -b 4096 -C "your_email@youremail.com"

在所有问题上按回车键 要查看新创建的密钥(personalised_key_name和personalised_key_name.pub),请运行:

ls

将公钥复制到剪贴板中,请运行:

pbcopy < personalised_key_name.pub 

或者

cat personalised_key_name.pub | pbcopy

前往您的远程代码库(例如GitHub、Bitbucket或GitLab)在您的个人资料或存储库设置下,导航到SSH访问并将公钥粘贴到剪贴板中。保存并返回Jenkins。

  • 类型:带有私钥的SSH用户名
  • 范围:全局(Jenkins、节点、项目、所有子项目等)
  • ID:为其指定所选凭据ID,例如Git_Jenkinkis_CI
  • 私钥:来自Jenkins的私钥(personalised_key_name)
  • 密码:可选密码。

转到您的作业并进行配置。 在“源代码管理”下粘贴正确的ssh存储库URL 在凭据下选择您刚刚创建的Jenkins凭据,然后它应该可以工作。


-1

我还没有将 Jenkins 密钥与我的 Gerrit 密钥配置好。现在正在处理中...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接