Maven won't use public key to deploy

狂风中的少年 提交于 2019-12-21 08:13:59

问题


I'm using SSH to deploy my Java artifacts to a server. I have the keys set up so that I can interactively SSH to the server without requiring a password, but when I try to run the "mvn deploy" or "mvn release:perform" commands, it hangs (at what I assume is the password prompt).

My ~/.m2/settings.xml file contains the username for the server (because it is different than my local username) and references the id of the server that requires the different user.


回答1:


Are you sure your settings.xml provides everything required? Did you declare your privateKey (and the passphrase if necessary)? Something like this:

<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>



回答2:


In your distributionManagement section, try using "scpexe://" in your url instead of "scp://".

This calls the standard scp program (assuming it is on your path), instead of using the Java implementation of scp that is built into Maven. Standard scp uses ssh-agent (which, in Ubuntu, starts automatically when you log in through GDM) for public-key auth.



来源:https://stackoverflow.com/questions/2796303/maven-wont-use-public-key-to-deploy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!