Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkin Job无法推动Git中的更改_Git_Jenkins_Containers - Fatal编程技术网

Jenkin Job无法推动Git中的更改

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

我已经在集装箱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 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操作。