我使用Sonatype Nexus工具管理我公司的Nuget包。有测试和生产环境。
我通过" nuget.exe push -package -apikey"推送包裹。命令。在测试环境中不更改Api键。它完全正确。我推了所有的包裹。
我在生产环境中遇到了一些问题。我首先推了一个包,然后当我想推送其他包时它会询问用户名和密码。我再次在Sonatype Nexus接口上获得了一个新的api密钥。我推了一个包,然后再次询问用户名密码进行第二次试用和其他人。
因此,我必须在第一次试用后每次都获得一个新的api密钥,以便将我的Nuget软件包推送或删除到Sonatype Nexus工具。
你可以帮帮我吗? 谢谢答案 0 :(得分:8)
假设您使用的是Sonatype Nexus v3,我遇到了类似的问题,要解决检查是否已启用NuGet身份验证以及用户是否具有相应的权限。
启用NuGet身份验证(第8.7.1节。访问NuGet API密钥here),大致如下:
*以管理员身份登录
*在"管理" (齿轮顶部) - >安全 - >三界
*确保" NuGet API-Key Realm"在" Active"方框
另外,请检查您的用户是否拥有正确的权限,尤其是我找到了以下工作:
* nx-apikey-all
* nx-repository-view-*-*-*
这将允许用户查看,更新,发布,删除此Nexus服务器上的所有存储库。我推荐一种更精细的方法,一旦你开始工作,例如添加repository-view*
权限,但不添加nx-repository-view-*-*-delete
,以避免您的CI能够删除包。
答案 1 :(得分:0)
除了上一个答案。如果您有一个简单的方案,其中admin是唯一的用户,并且您使用连接到管理员帐户的API密钥发布,您将获得相同的结果410 Unauthorized。
为了解决这个问题,我已经创建了另一个具有上述答案权限的角色,除了nx-admin之外,还明确地将admin用户添加到该组。