使用 SSH 密钥进行身份验证的带有 Artifactory <server/> 的 Maven settings.xml

Eri*_*ert 6 artifactory maven

使用 Artiacory 生成的 maven 设置我可以运行mvn deploy,构建完成,并且工件成功部署。

能够将公钥上传到 Artifactory(请参阅:https : ~/.m2/settings.xml//jfrog.com/article/ssh/ ),我希望用私钥/密码对替换生成的用户名/密码(请参阅:https ://maven.apache.org/settings.html#Servers)。

不幸的是,从用户名/密码切换到私钥/密码,我收到以下“未授权”错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project my-project: Failed to retrieve remote metadata com.test:my-project:1.0-SNAPSHOT/maven-metadata.xml: Could not transfer metadata com.test:my-project:1.0-SNAPSHOT/maven-metadata.xml from/to my-artifactory (https://na.artifactory.xxxx.com:443/artifactory/my-artifactory-local): Not authorized -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

Artifactory 是否支持来自 Maven 的私钥/密码验证?或者,是否可以使用用户名/密码(可能是 API 密钥?)以外的其他内容来允许 Maven 进行身份验证?

Ric*_*ish 4

我不知道如何让公钥身份验证与 Artifactory 和 Maven 一起使用,但至少在 Artifactory 6.15.1 中,您可以为您的帐户使用 Artifactory API 密钥而不是密码。在 Artifactory Web UI 中,单击您的登录名打开您的个人资料,输入当前密码以解锁您的个人资料,然后复制 API 密钥并将其粘贴到<servers>Maven 部分settings.xml,替换以下示例中的 ARTIFACTORY_USERNAME 和 ARTIFACTORY_API_KEY:

   <servers>
       <server>
           <id>central</id>
           <username>ARTIFACTORY_USERNAME</username>
           <password>ARTIFACTORY_API_KEY</password>
       </server>
       <server>
           <id>snapshots</id>
           <username>ARTIFACTORY_USERNAME</username>
           <password>ARTIFACTORY_API_KEY</password>
       </server>
   </servers>
Run Code Online (Sandbox Code Playgroud)