我有一个简单的詹金斯管道构建,这是我的詹金斯文件:
pipeline {
agent any
stages {
stage('deploy-staging') {
when {
branch 'staging'
}
steps {
sshagent(['my-credentials-id']) {
sh('git push joe@repo:project')
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 sshagent 推送到远程服务器上的 git 存储库。我已经创建了指向 Jenkins master ~/.ssh 中的私钥文件的凭据。
当我运行构建时,我得到以下输出(我用 * 替换了一些敏感信息):
[ssh-agent] Using credentials *** (***@*** ssh key)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine)
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-cjbm7oVQaJYk/agent.11558
SSH_AGENT_PID=11560
$ ssh-add ***
Identity added: ***
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
$ ssh-agent -k
unset SSH_AUTH_SOCK; …Run Code Online (Sandbox Code Playgroud)