詹金斯:stderr:权限被拒绝(公钥)。致命:远程端意外挂断

时间:2016-05-25 09:09:18

标签: git jenkins ssh

我在虚拟机(redhat)上托管Jenkins。我能够在其上设置jenkins系统并能够访问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密钥相关的解决方案但没有任何帮助。

PLs帮助。

4 个答案:

答案 0 :(得分:5)

  • 使用您安装Jenkins的用户登录您的服务器,并将您的ssh密钥放在主目录下(cd~)。你的公钥和私钥应该有.ssh文件夹。
  • 转到您的Jenkins服务器:http://JenkinsMaster:Port/ 凭据,然后按“添加凭据”
  • 使用私钥选择SSH用户名
    • 范围是全球性的
    • 用户名作为生成SSH密钥的用户
    • Jenkins master的私钥〜/ .ssh
    • 添加“为GIT服务”等说明
  • 在选择GIT作为您的SCM后,在您的工作中选择这些凭证(存储库下称为凭证的字段)
祝你好运!

答案 1 :(得分:4)

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

  1. sudo -i -u jenkins
  2. mkdir~ / .ssh
  3. cd~ / .ssh
  4. ssh-keygen -t rsa -C“jenkins @ git”
  5. eval“$(ssh-agent -s)”
  6. ssh-add~ / .ssh / id_rsa
  7. cat id_rsa.pub 复制输出并将其添加到您的Git仓库。 完成

答案 2 :(得分: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"

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

ls

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

pbcopy < personalised_key_name.pub 

cat personalised_key_name.pub | pbcopy

转到个人资料下或存储库设置下的远程存储库(例如GitHub,Bitbucket或GitLab),导航至SSH Access并将公共密钥粘贴到剪贴板中。保存并返回詹金斯。 在Jenkins中,导航到“凭证”>单击(全局)链接>“添加凭证”

  • 种类:带私钥的SSH用户名
  • 范围:全局(詹金斯,节点,项目,所有子项目等)
  • ID:为其提供您选择的凭据ID,例如Git_Jenkinkis_CI
  • 私钥:您来自Jenkins的私钥(personalised_key_name)
  • 密码:可选密码。

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

答案 3 :(得分:-1)

我没有使用我的gerrit键配置Jenkins密钥。现在工作..