如何为Jenkins Git插件指定SSH密钥

4
我正在使用Git插件,它可以与“Jenkins凭据管理功能”集成:

凭据:用于连接到仓库的凭据(除非允许匿名访问),使用Jenkins凭据管理功能。所使用的凭据类型取决于底层协议。仅支持私钥认证的SSH连接。

太好了,“Jenkins凭据管理功能”对我有效:我能够运行“来自SCM的管道脚本”。
那么,我如何在Git插件中使用这些凭据?既没有Git插件文档,也没有网上的示例。这是我的Jenkinsfile的相关部分,其中包含Git步骤:
node {
    stage('Checkout') {
        git url: 'ssh://git@5.6.7.8:5999/my/repo.git', branch: 'wip'
    }
    ...
}

尝试前往 Jenkins > 凭据 > 系统 > 全局凭据 > 添加凭据,然后选择 SSH 用户名和私钥?然后在您的 Jenkins 作业中,设置作业时只需引用这些凭据即可。您不必使用全局凭据,可以使用不同的域。 - Harmelodic
@Harmelodic:正如所说,凭据已经添加并且可以使用。我只是不知道如何在运行Pipeline的Jenkinsfile的Checkout阶段中从git命令引用它们。 - blueFast
我没有测试过,但根据文档(滚动到末尾),您可以使用GenericSCMStep并提供_credentialId_:checkout scm: [$class: 'MercurialSCM', source: 'ssh://hg@bitbucket.org/user/repo', clean: true, credentialsId: '1234-5678-abcd'], poll: false。或者您可以使用命令行git客户端和Credentials Binding Plugin,也未经测试,有这个示例 - Morfic
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Explosion Pills
1个回答

1
他们似乎在此期间添加了一些文档: https://jenkins.io/doc/pipeline/steps/git/ 因此,对于您的示例,以下内容应该有效:
checkout([$class: 'GitSCM', branches: [[name: '*/wip']],
    userRemoteConfigs: [[url: 'ssh://git@5.6.7.8:5999/my/repo.git',
    credentialsId: 'your-credentials-id']]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接