Jenkin Job无法推动Git中的更改
我已经在集装箱Jenkin上创建了一个自由风格的Jenkin作业,它的签出代码来自git。一旦代码签出,我将创建一个测试文件并将nack提交给git。shell中的writen代码:Jenkin Job无法推动Git中的更改,git,jenkins,containers,Git,Jenkins,Containers,我已经在集装箱Jenkin上创建了一个自由风格的Jenkin作业,它的签出代码来自git。一旦代码签出,我将创建一个测试文件并将nack提交给git。shell中的writen代码: echo "some data for the file" >>test.txt git add -A git commit -m "Added new file" git status git push origin master But it gives error as : + git comm
echo "some data for the file" >>test.txt
git add -A
git commit -m "Added new file"
git status
git push origin master
But it gives error as :
+ git commit -m 'Added new file'
[detached HEAD f0a4575] Added new file
1 file changed, 1 insertion(+)
create mode 100644 test.txt
+ git status
# HEAD detached from 7090e78
nothing to commit, working directory clean
+ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
您需要在本地计算机中使用SSH-keygen命令生成SSH密钥对。这将生成公共和私有SSH密钥 将公钥上载到存储库,并使用您选择的自定义ID将私钥存储在Jenkins Credentials Manager中 在您的工作中,您需要,并将其内容放在此处:
~/.ssh/id_rsa
如果这不起作用,您可能需要使用sshagent添加密钥。这里有一个GitHub的示例:
无论如何,如果管理SSH密钥对您来说是一件痛苦的事情,那么您也可以将用户和密码作为凭据存储在Jenkins中,然后使用简单的基本身份验证机制进行身份验证非常容易:
git推送https://$USERNAME:$PASSWORD@yourRepoUrl.com/repo
我已经生成了ssh密钥,并在github上添加了公钥,在Jenkin上添加了私钥。如果您看到日志,我可以从git签出代码,但无法验证您的正确性,那么已经创建了ssh密钥。然后,唯一缺少的部分是使用作业配置注入凭证,以便能够在bash脚本中使用它并将其推回到git远程。一旦有了密钥,就可以执行ssh add-K和push操作。