如何为启用 2FA 的 github 帐户配置 Jenkins?

Posted

技术标签:

【中文标题】如何为启用 2FA 的 github 帐户配置 Jenkins?【英文标题】:How to configure Jenkins for 2FA enabled github account? 【发布时间】:2021-12-13 20:54:01 【问题描述】:

我的帐户启用了 2FA,并且我的仓库是私有的。我正在尝试使用 Jenkins 将我的 node.js 应用程序部署到 AWS Ec2 并且一切正常,包括(构建、测试、覆盖),但由于 2FA 问题,最终部署不起作用。我已经在 jenkins 中添加了我的用户名和令牌,这似乎可以工作,但是一旦我运行像 git pull 这样的 git 命令,它会在运行时询问用户名和密码,因为 Jenkins 无法连接到 github 并且无法进行任何更改. 这是部署阶段:

stage('deploy') 
              steps 
                  withCredentials([usernamePassword(credentialsId: 'someid', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')])
                    echo 'Deploying to aws ec2'
                    sh '''#!/bin/bash
                    ssh ubuntu@ip-555.55.55.5 <<EOF
                     cd /var/www/app
                     sudo git reset --hard HEAD # problem is likely to be here because it requires username and password
                     sudo git pull
                     npm install
                     pm2 restart all
                     exit
                    EOF
                    '''
                  

          

【问题讨论】:

我以为 GitHub 删除了username/password option;必须是用户名/PAT。 【参考方案1】:

通过添加 ssh 密钥并将远程 url 更改为 Github ssh url 解决了这个问题。

【讨论】:

以上是关于如何为启用 2FA 的 github 帐户配置 Jenkins?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Github 帐户和 Bitbucket 公司帐户添加多个 SSH 密钥

如何为具有防火墙后存储帐户的 sql server 启用 arm 模板漏洞评估

Laravel Mail - 无法将 G Suite 帐户用于 SMTP(已创建 2FA 和应用密码)

如何为组织帐户生成 GitHub OAuth 令牌?

如何为支持 SSH 的服务器启用 SOCKS

如何为两个不同的帐户使用cmd命令[重复]