在我的Jenkins流水线中,我可以成功地克隆存储库,但是使用SSH Agent插件推送标签会失败。我已经确保GitHub上的部署密钥具有写入权限,因此似乎存在其他问题...
pipeline {
agent { docker { image 'node:8' } }
stages {
stage('Pull Repo') {
steps {
git (
branch: 'master',
credentialsId: 'cred-id',
url: 'github.com:***'
)
sshagent(['github-omnia']) {
sh("git tag -a \"release-2.3.${BUILD_NUMBER}\" -m \"Jenkins built ${BUILD_NUMBER}\"")
sh("git push --tags")
}
}
}
}
}
我有所遗漏吗? 编辑: 这是错误的控制台输出
[ssh-agent] Using credentials git (Access to Github-**)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine)
$ docker exec a6cee721d592b10bb94abbde0471d24a4320dcd07362affb1f18454d6ebe028d ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-TI7dNVoYszsC/agent.12
SSH_AGENT_PID=17
Running ssh-add (command line suppressed)
Identity added: /var/jenkins_home/workspace/Build-And-Deploy-***@tmp/private_key_7884642190516796613.key (/var/jenkins_home/workspace/Build-And-Deploy-***@tmp/private_key_7884642190516796613.key)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ git config --global user.email jenkins@***.se
[Pipeline] sh
+ git config --global user.name Jenkins
[Pipeline] sh
+ git remote set-url origin git@github.com:***/***
[Pipeline] sh
+ git tag -a release-2.3.3 -m Jenkins built 3
[Pipeline] sh
+ git push origin --tags
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
,它将简单地禁用主机密钥检查,从而可能允许中间人攻击。正确的修复方式取决于更多的上下文,而我不想了解你的项目。 - Sven Marnach