对Github的SSH访问:shell没关系,Jenkins失败了

时间:2016-07-12 16:14:05

标签: authentication github jenkins

在您立即将此标记为可能重复之前,请阅读整篇文章

TLDR: 我正在尝试建立一个jenkins来读取私有 Github存储库。当我使用jenkins凭证与username/password时,它可以正常工作,当我使用private key的jenkins凭据时,它没有,我收到“无效的用户名/密码”错误。

完整说明:

  1. 我在apache-tomcat 8上安装了jenkins 2.5,jenkins在用户tomcat8下运行。还安装了凭据插件(2.1.4),Git客户端插件(1.19.6),Gitplugin(2.5.2),Github API插件(1.76),GitHub插件(1.19.2),SSH凭证插件(1.12)。 Git正在2.1.4版本中运行
  2. 我为用户tomcat8创建了一个带空密码的ssh-keypair [通过sudo -su tomcat8登录为tomcat8]
  3. 我已将公钥添加到私有Github存储库
  4. 我创建了一个jenkins凭据ssh username with private key,其中包含全局范围,用户名tomcat8,空密码以及从-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----
  5. 的完整私钥
  6. 我使用github帐户的普通用户名和密码创建了一个jenkins信用卡“用户名/密码”。
  7. 当我登录用户tomcat8并使用命令ssh -T git@github.com通过shell检查github身份验证时,我得到了正确的输出。这意味着我使用密钥对github的身份验证工作(对吧?)

      

    tomcat8 @ ci:〜/ .ssh $ ssh -T git@github.com   嗨github用户名!您已成功通过身份验证,但GitHub不提供shell访问权限。

  8. Wenn我现在设置了我的jenkins工作:repository URL: https://github.com/repoownername/reponame.git并使用username / passwort-credential访问很好。但是,当我使用ssh-credentials时,身份验证会失败

      

    无法连接到存储库:命令“git -c core.askpass = true ls-remote -h https://github.com/repoownername/reponame.git HEAD”返回状态码128:   标准输出:   stderr:remote:用户名或密码无效。   致命:“https://github.com/repoownername/reponame.git

    的身份验证失败

    更多信息 当我使用用户名/密码凭证运行构建时

      

    git config remote.origin1.url https://github.com/repoownername/reponame.git #timetime = 10   从https://github.com/repoownername/reponame.git获取上游更改   使用.gitcredentials设置凭据   git config --local credential.username github-username#timeout = 10   git config --local credential.helper store --file = / tmp / tomcat8-tomcat8-tmp / git1018128562913260002.credentials #timeout = 10   git -c core.askpass = true fetch --tags --progress https://github.com/repoownername/reponame.git + refs / heads / :refs / remotes / origin1 /   git config --local --remove-section credential #timetime = 10

    当我使用SSH凭据时,我得到了上面提到的错误。

    所以现在我的问题是:如何成功使用我的SSH凭据而不是用户名/密码

    我检查了一些教程:

1 个答案:

答案 0 :(得分:7)

哦,男人,我有点愚蠢。

我的错误是我使用了我的存储库的错误网址!我用过:

https://github.com/repoownername/reponame.git在使用username/password凭据时效果很好。

但对于SSH-Acess我必须使用

git@github.com:repoownername/reponame.git