jenkins配置Git Credentials时报错:Failed to connect to repository Command "git ls-remote..." returned status code 128

jenkins配置Git Credentials时报错:Failed to connect to repository : Command "git ls-remote -h -- git@github.com:testuser/myproject.git HEAD" returned status code 128: stdout: stderr: Load key "/Users/Shared/Jenkins/tmp/ssh3293544818084800743.key": invalid format git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

大概意思就是说,无权访问Github代码仓库。如何解决呢?

要解决这个问题,我们需要进行下面的3步设置:

第1步:我们需要在jenkins所在的机器上使用ssh-keygen创建秘钥对

$ ssh-keygen  //不指定任何参数,默认秘钥对被保存到根目录的.ssh目录下
或者
$ ssh-keygen -t rsa -C "example@example.com" -f ~/.ssh/jenkins  //指定算法、创建人邮箱、秘钥对保存目录

示例:
ssh-keygen

秘钥对目录结构:

$ tree ~/.ssh/
/home/testuser/.ssh/
├── id_rsa
└── id_rsa.pub

第2步:将创建的秘钥对中的公钥文件id_rsa.pub内容添加到Github.com,菜单路径:Settings->SSH and GPG keys->New SSH key,如图:

add-public-key-to-github

第3步:将创建的私钥内容添加到Credentials中。
add-private-key-to-credential

如果这三个步骤设置都正确,错误提示就将自动消失。

说明:我在查询资料的时候,有些说需要单独在jenkins账户下创建秘钥对,但是我这里是在自己的账户下创建的秘钥对,经测试是可以正常工作。

the end

热门文章