简洁版本
我正在使用别名来连接我的远程 Git 存储库。它可以工作,但是当我将这样的存储库添加到 Jenkins 时,它无法访问存储库并显示错误:
无法连接到存储库:命令“git -c core.askpass=true ls-remote -h git@github.com-foo:myaccount/myrepository.git HEAD”返回状态码 128:stdout:stderr:ssh:无法解析主机名 github.com-foo:名称或服务未知致命:无法从远程存储库读取。
请确保您具有正确的访问权限并且存储库存在。
详细的问题描述
为了commit
/push
编码为不同的用户,我使用别名:
C:\Users\myusername\.ssh\config
...
#github.com-foo account
Host github.com-foo
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_foo
#github.com-bar account
Host github.com-bar
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_bar
...
然后代替
git clone git@github.com:myaccount/myrepository.git
我只是使用
git clone git@github.com-foo:myaccount/myrepository.git
该.ssh
目录可作为共享文件夹从我的本地 VM 访问,因此也可以在 VM 上使用我的凭据。
一切正常。
现在,我在 VM 上安装了 Jenkins,并希望配置与存储在 GitHub 上的远程存储库的连接。我做了什么:
证件:
Jenkins -> Credentials -> [link] Global credentials (unrestricted) -> [radio button] Enter directly -> [textarea] Key -> added -> [button] Save
。Git 插件:
Jenkins -> Configuration -> [section] Git plugin
-- 电子邮件和姓名设置:
- 项目 Git 设置:
[project] -> Configuration -> [section] Source Code Management -> [section] Git
-- 存储库 URL 和凭据:
如屏幕截图所示,连接失败。
为什么它不工作以及如何让它工作,以便使用别名连接 Jenkins 中的远程 Git 存储库?