Jfrog CLI 不尊重配置的 API 密钥

Posted

技术标签:

【中文标题】Jfrog CLI 不尊重配置的 API 密钥【英文标题】:Jfrog CLI does not respect configured API key 【发布时间】:2017-03-16 15:56:14 【问题描述】:

我正在使用 Powershell DSC 设置 Windows Server 2012 R2 机器。作为配置过程的一部分,我正在配置 jfrog.exe 并作为服务帐户执行配置命令:

jfrog rt config --url=$localArtifactoryInstance --user=$username --apikey=$apikey

此命令按预期在服务帐户的主目录 (C:\Users\$serviceAccount.jfrog.jfrog-cli.conf) 中创建 .jfrog.jfrog-cli.conf,其中包含 URL/用户名/apiKey。

配置后,此服务帐户负责将工件从一个存储库“提升”到另一个存储库:

jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/1/2/'

这个命令被 401 拒绝:

[Error] Artifactory response: 401 Unauthorized

  "errors": [
    
      "status": 401,
      "message": "Bad authentication. Provided username or password are incorrect."
    
  ]

但是,当我将 jfrog-cli.conf 中已配置的 API 密钥 添加到命令时:

jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/1/2/' --ApiKey $apiKey

成功了,我可以通过 Artifactory UI 验证成功。

执行命令的服务账户与执行jfrog rt config的服务账户相同,并且匹配jfrog-cli.conf中的用户名。 API 密钥是在 Artifactory 中为该服务帐户生成的 我已尝试将 jfrog-cli.conf 中的用户名更改为包含和不包含域 我已确保环境变量 'HOME' 存在并指向服务帐户的主目录(https://github.com/JFrogDev/jfrog-cli-go/blob/master/utils/ioutils/ioutils.go 似乎暗示此变量是必需的) 'jfrog rt config show' 显示正确的数据

感谢您提供的任何帮助或指导!

【问题讨论】:

【参考方案1】:

“401 Unauthorized”响应是同时配置用户名和 API 密钥的结果。

当运行jfrog rt config 时,您可以提供或者一个用户名/密码对一个 API 密钥。配置用户名和 api 密钥后,我的命令失败,因为 jfrog.exe 使用用户名和无密码联系服务器。

解决方案是从我的 Powershell DSC 配置中完全删除用户名,并在运行 jfrog rt config 时仅提供 urlapikey

【讨论】:

以上是关于Jfrog CLI 不尊重配置的 API 密钥的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vue CLI 4 和 Electron 项目中保护环境变量中的 API 密钥

将私有 api 密钥存储在颤振中

无法使用 boto 从 S3 读取密钥,但可以使用 aws cli

我应该如何配置 Apollo Nuxt 模块以向我的查询提供 AWS Amplify api 密钥?

如何为指数 create-react-native-app 配置 API 密钥

访问未配置 Android Google API 密钥