10

我正在使用 SSH 将我的 Java 工件部署到服务器。我设置了密钥,这样我就可以交互地 SSH 到服务器而不需要密码,但是当我尝试运行“ mvn deploy”或“ mvn release:perform”命令时,它挂起(我假设是密码提示)。

我的~/.m2/settings.xml文件包含服务器的用户名(因为它与我的本地用户名不同)并引用id需要不同用户的服务器的用户名。

4

2 回答 2

10

您确定您settings.xml提供所需的一切吗?您是否声明了您的privateKey(以及passphrase必要时)?像这样的东西:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase> <!-- if required -->
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  ...
</settings>
于 2010-05-09T01:52:05.713 回答
5

在您的 distributionManagement 部分,尝试在您的 url 中使用“scpexe://”而不是“scp://”。

这会调用标准 scp 程序(假设它在您的路径上),而不是使用 Maven 中内置的 scp 的 Java 实现。标准 scp 使用 ssh-agent(在 Ubuntu 中,当您通过 GDM 登录时会自动启动)进行公钥验证。

于 2010-06-30T23:36:21.270 回答