无法在 Jenkins Git 插件中使用安全凭据



我有一个 Jenkins 管道,我在其中使用 Git 插件从共享库中签出管道代码,但我面临以下问题:

  • SSH 身份验证和密码身份验证已禁用
  • 当我在 git 插件中将令牌与存储库 URL 一起使用时,它在 Jenkins 控制台输出中可见,有什么方法可以从控制台输出中隐藏令牌值?
  • 当我使用秘密文本作为输入参数时,Git 插件无法解析它的值,我有 ${TOKEN} , $TOKEN , ${env。TOKEN(,"$TOKEN",但它将$视为一些特殊字符并得到如下错误:

致命:无法访问"https://%24{TOKEN}@github.com

此外,我尝试将凭据绑定插件与 Git 插件一起使用,但我收到以下错误

fatal: could not read Username for 'https://github.xxx.com': terminal prompts disabled

PS:我的企业Jenkins版本(Cloudbees核心(中没有任何此类问题,一切似乎都按预期工作,我比较了每个配置,但找不到任何:(

谢谢 皮尤什

对不起,我应该发布答案。是的,我能够使用以下方法解决问题:

在新版的 Git 客户端中,git 客户端使用 GIT_ASKPASS 方法,该方法创建一个临时脚本,当 git 在构建过程中请求凭据时执行。

默认情况下,它运行在 Jenkins 工作区中,该工作区以"noexec"模式挂载在文件系统上。我们将 noexec 模式更新为 exec 并使用命令在主机操作系统上重新挂载文件系统,并重新启动了 docker,现在我们可以使用 Jenkins 凭据进行 git 身份验证,而不会出现任何问题。

使用 mount 命令,检查 Jenkins 用于运行临时脚本的文件系统是否已挂载为 noexec 模式。 如果是,请删除和选项,重新挂载它并重新启动 docker 服务(如果您运行的是 Jenkins a Docker容器(。

最新更新