报错信息:

Failed to connect to repository : Command "git.exe ls-remote -h -- git@git.website.git HEAD" returned status code 128:
stdout:
stderr: Load key "C:\\WINDOWS\\TEMP\\jenkins-gitclient-ssh2354736407399704944.key": invalid format
git@codeup.aliyun.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

问题描述:

使用SSH验证的方式来获取仓库代码的权限,在Jenkins凭据中添加全局凭证(Key是用git生成的本机rsa私钥)。

 在新建的自由任务中设置git仓库地址后,选用了刚刚设置的全局凭证。发现报错获取不到凭证。

猜测原因:

1. 可能是解析密钥不正确,密钥没有复制全导致

2. 可能是Jenkins登录的账号获取不到本机的ssh加密配置。

解决方法:

密码不全

把密钥复制到全局凭证Key中时,要将密钥上下的START和END那两段都要复制完全。复制成功后就不会报错了。

设置方式:

 查看本机rsa公钥配置:

 打开上面的rsa目录:

打开id_rsa文件,复制所有内容,包括开始和结束段。

全局配置,选中Enter directly:把密钥全部复制进去即可。

设置默认SSH配置文件

如果想给Jenkins加一个默认的ssh验证方式,可以直接把ssh配置文件复制到Jenkins的配置文件下面,这样当Credentials选择为无时便会加载默认的ssh配置文件了。

设置方式:

再打开Jenkins的 登陆账号的配置地址:

 ok,发现Jenkins没有相应的rsa配置,直接把rsa的公钥和私钥复制到Jenkins的ssh地址下即可。

复制完成之后,重新打开Jenkins,在Credentials的配置中选择无,错误消息了。

参考:

git - Jenkins: Failed to connect to repository - Stack Overflowhttps://stackoverflow.com/questions/21557998/jenkins-failed-to-connect-to-repository

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐