如何使用批处理在 jenkins 上使用 SSH 密钥 运行 git 命令?
How to run a git command with SSH key on jenkins using batch?
我的 jenkins 管道上有一个 运行 的 bat 脚本。
它用于标记我分支的特定提交,并将其推回git。
看起来像这样:
"scriptCommand": https://%C_USERNAME%:%C_PASSWORD%@bitbucket.psr.io/scme/ci/ci.git\ngit push origin TAG1\ngit remote set-url --push origin https://bitbucket..psr.io/scme/ci/ci.git"
该命令是使用变量 C_USERNAME、C_PASSWORD 和 TAG1
前两个取自 usernamePassword 类型的 jenkins 凭据,并注入到字符串中,TAG1 是一个简单的字符串,应该用于让我的 git 分支标记
这很有效,当我使用 http link 而不是 SSH link 作为我的 repo
我还需要能够处理 SSH link。
为此,我研究了 SSH 私钥,结果发现 jenkins 凭证有一个特定的字段:SSH Username with private key
我在 jenkins 中使用我的私钥和用户名创建了一个这样的凭证
但是现在我在如何创建一个与上面使用 http link.
不用说,我对这件事的经验是0。
有人可以帮我解决这个问题吗?感谢您的宝贵时间。
SSH URL 就像:
git@bitbucket.psr.io/scme/ci/ci.git
但您可能想要使用专用插件,例如 publish over SSH, which you can include in a pipeline。
你的情况:
git remote set-url --push origin git@bitbucket.psr.io/scme/ci/ci.git
node {
sshagent (credentials: ['myKey']) {
sh 'git push git@bitbucket.psr.io/scme/ci/ci.git aTag'
}
}
假设您有 ,作为名为“myKey
”的条目。
使用withCredentials
, as shown here, assuming Git 2.10+ for GIT_SSH_COMMAND
:
withCredentials([sshUserPrivateKey(credentialsId: "myKey", keyFileVariable: 'key')]) {
//auth to git here then do some commands for example:
sh 'git commmit -am "hello my commit message'
sh 'GIT_SSH_COMMAND = "ssh -i $key"'
sh 'git push git@bitbucket.psr.io/scme/ci/ci.git aTag'
}
我的 jenkins 管道上有一个 运行 的 bat 脚本。
它用于标记我分支的特定提交,并将其推回git。 看起来像这样:
"scriptCommand": https://%C_USERNAME%:%C_PASSWORD%@bitbucket.psr.io/scme/ci/ci.git\ngit push origin TAG1\ngit remote set-url --push origin https://bitbucket..psr.io/scme/ci/ci.git"
该命令是使用变量 C_USERNAME、C_PASSWORD 和 TAG1 前两个取自 usernamePassword 类型的 jenkins 凭据,并注入到字符串中,TAG1 是一个简单的字符串,应该用于让我的 git 分支标记
这很有效,当我使用 http link 而不是 SSH link 作为我的 repo
我还需要能够处理 SSH link。 为此,我研究了 SSH 私钥,结果发现 jenkins 凭证有一个特定的字段:SSH Username with private key
我在 jenkins 中使用我的私钥和用户名创建了一个这样的凭证
但是现在我在如何创建一个与上面使用 http link.
不用说,我对这件事的经验是0。
有人可以帮我解决这个问题吗?感谢您的宝贵时间。
SSH URL 就像:
git@bitbucket.psr.io/scme/ci/ci.git
但您可能想要使用专用插件,例如 publish over SSH, which you can include in a pipeline。
你的情况:
git remote set-url --push origin git@bitbucket.psr.io/scme/ci/ci.git
node {
sshagent (credentials: ['myKey']) {
sh 'git push git@bitbucket.psr.io/scme/ci/ci.git aTag'
}
}
假设您有 myKey
”的条目。
使用withCredentials
, as shown here, assuming Git 2.10+ for GIT_SSH_COMMAND
:
withCredentials([sshUserPrivateKey(credentialsId: "myKey", keyFileVariable: 'key')]) {
//auth to git here then do some commands for example:
sh 'git commmit -am "hello my commit message'
sh 'GIT_SSH_COMMAND = "ssh -i $key"'
sh 'git push git@bitbucket.psr.io/scme/ci/ci.git aTag'
}