可以将Maven Wagon插件配置为使用ssh/scp的私钥吗?我尝试过的每一件事都会让maven在遇到scp时向我索要密码。
发布于 2010-04-28 23:10:05
您应该能够在settings.xml的server元素中指定私钥的路径:
POM的repositories
和distributionManagement
元素定义了用于下载和部署的存储库。但是,某些设置(如用户名和密码)不应随pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml中。
..。server001 my_login my_password ${user.home}/.ssh/id_dsa some_passphrase 664 775...
${user.home}/.ssh/id_dsa)
和一个密码短语)。将来可能会外部化密码和密码元素,但现在必须在部署时在settings.xml file.注意:如果使用私钥登录到服务器,请确保省略<password>
元素。否则,密钥将被忽略。
密码加密
2.1.x和3.0中继中添加了一项新功能-服务器密码和密码短语加密。请参阅this page的详细信息。
请特别注意“注意事项”:如果使用私钥登录到服务器,请确保省略了<password>
元素。否则,密钥将被忽略。因此,最终的配置将接近于:
<settings>
...
<servers>
<server>
<id>ssh-repository</id>
<username>your username in the remote system</username>
<privateKey>/path/to/your/private/key</privateKey>
<passphrase>sUp3rStr0ngP4s5wOrD</passphrase><!-- if required -->
<configuration>
...
</configuration>
</server>
</servers>
...
</settings>
发布于 2018-01-16 16:41:05
我知道这是一个旧线程,但看起来旅行车插件正在读取settings.xml (例如用户名),但没有使用所有设置。我无法让它在scp期间停止询问Kerberos用户名/密码。(看起来2016年晚些时候插件可能有一些变化影响了这一点。)只是添加这个答案,以防它对其他人有帮助。
对我来说,解决方案甚至更简单:完全跳过使用'settings.xml‘,简单地为协议指定'scpexe’而不是'scp‘(就像在pom.xml的distributionManagement部分下)。然后使用计算机的默认SSH配置(~/.ssh下的unix设置)。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>upload-to-server</id>
<phase>deploy</phase>
<goals><goal>upload-single</goal></goals>
<configuration>
<fromFile>file-to-upload</fromfile>
<url>scpexe://username@serverName/dirname-to-copy-to
<toFile>file-to-upload</toFile>
</configuration>
</execution>
</executions>
</plugin>
发布于 2021-04-12 19:57:40
今天,我想结合maven-site-plugin (3.9.1)做同样的事情,但也遇到了一些障碍(具体地说,旅行车-ssh插件坚持要求我提供我的Kerberos用户名和密码)。wagon-ssh-3.4.3最终对我起作用的是什么?
<!-- add scp support for mvn site:deploy -->
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.4.3</version>
</dependency>
在settings.xml中
<server>
<id>ssh-repository</id>
<username>pridkdev</username>
<privateKey>${user.home}/.ssh/pridkdev.ppk</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration>
<interactive>false</interactive>
<strictHostKeyChecking>no</strictHostKeyChecking>
<preferredAuthentications>publickey</preferredAuthentications>
</configuration>
</server>
我想最关键的是<configuration>
块,特别是<preferredAuthentications>
设置。
https://stackoverflow.com/questions/2733447
复制相似问题