Sonatype Nexus缺少API密钥

3
我在公司使用Sonatype Nexus工具来管理我的Nuget包。有测试和生产环境。
我通过“nuget.exe push -package -apikey”命令推送包。在测试环境中,API密钥没有更改,它完全正常工作,我已经推送了所有的包。
但是,在生产环境中出现了一些问题。我首先推送了一个包,然后当我想要推送其他包时,它要求我输入用户名和密码。我又在Sonatype Nexus界面上获取了一个新的API密钥。我推送一个包,然后再次为第二次尝试和其他操作需要输入用户名和密码。
因此,我必须每次在第一次尝试后获取一个新的API密钥,才能将我的Nuget包推送或删除到Sonatype Nexus工具中。
你能帮我吗?谢谢。
2个回答

11
假设您正在使用Sonatype Nexus v3,我有类似的问题,为解决问题请检查NuGet身份验证是否启用,并确保用户具有适当的权限。
要启用NuGet身份验证(请参见此处第8.7.1节“访问NuGet API密钥”,链接),请按照以下步骤操作: * 以管理员身份登录 * 在“管理”下(顶部的齿轮图标)-> 安全性 -> 领域 * 确保“NuGet API-Key领域”在“Active”框中
此外,请检查您的用户是否具有正确的权限,尤其是我发现以下工作: * nx-apikey-all * nx-repository-view-*-*-* 这将允许用户查看、更新、发布、删除此Nexus服务器上的所有存储库。我建议在您使其工作后采用更加精细的方法,例如添加repository-view*权限,但不要添加nx-repository-view-*-*-delete权限,以避免您的CI能够删除软件包。

你把 nx-repository-view-*-*-* 列在了两行,第二行是什么意思? - Mike Dimmick

1
除了之前的回答外,如果您有一个简单的场景,其中管理员是唯一的用户,并且您使用与管理员帐户连接的API密钥发布,则会得到相同的结果410未经授权。
为了解决这个问题,我创建了另一个角色,并从上面的答案中添加了权限,并将管理员用户显式地添加到这个组中,以补充nx-admin。

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