我正在使用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。
设置后,此服务帐户负责将 Artifact 从一个存储库“提升”到另一个存储库:
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验证成功。
感谢您提供的任何帮助或指导!
最佳答案
“401未经授权”响应是同时配置用户名和API密钥的结果。
运行jfrog rt config
时,您可以提供用户名/密码对或API密钥。配置用户名和api密钥后,我的命令失败,因为jfrog.exe使用用户名和密码与服务器联系。
解决方案是从Powershell DSC配置中完全删除用户名,并在运行jfrog rt config
时仅提供 url 和 apikey 。