在您立即将此标记为可能重复之前,请阅读整篇文章
TLDR:
我正在尝试建立一个jenkins来读取私有 Github存储库。当我使用jenkins凭证与username/password
时,它可以正常工作,当我使用private key
的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版本中运行sudo -su tomcat8
登录为tomcat8] ssh username with private key
,其中包含全局范围,用户名tomcat8
,空密码以及从-----BEGIN RSA PRIVATE KEY-----
到-----END RSA PRIVATE KEY-----
当我登录用户tomcat8
并使用命令ssh -T git@github.com
通过shell检查github身份验证时,我得到了正确的输出。这意味着我使用密钥对github的身份验证工作(对吧?)
tomcat8 @ ci:〜/ .ssh $ ssh -T git@github.com 嗨github用户名!您已成功通过身份验证,但GitHub不提供shell访问权限。
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凭据而不是用户名/密码
我检查了一些教程:
答案 0 :(得分:7)
哦,男人,我有点愚蠢。
我的错误是我使用了我的存储库的错误网址!我用过:
https://github.com/repoownername/reponame.git
在使用username/password
凭据时效果很好。
但对于SSH-Acess我必须使用
git@github.com:repoownername/reponame.git