首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Maven旅行车插件可以使用scp的私钥吗?

Maven旅行车插件可以使用scp的私钥吗?
EN

Stack Overflow用户
提问于 2010-04-28 22:08:28
回答 4查看 12.9K关注 0票数 11

可以将Maven Wagon插件配置为使用ssh/scp的私钥吗?我尝试过的每一件事都会让maven在遇到scp时向我索要密码。

EN

回答 4

Stack Overflow用户

发布于 2010-04-28 23:10:05

您应该能够在settings.xml的server元素中指定私钥的路径:

POM的repositoriesdistributionManagement元素定义了用于下载和部署的存储库。但是,某些设置(如用户名和密码)不应随pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml中。

..。server001 my_login my_password ${user.home}/.ssh/id_dsa some_passphrase 664 775...

  • id:这是与to.
  • username,尝试连接的存储库/镜像的id元素相匹配的服务器的ID (而不是登录所使用的用户的id)。server.
  • privateKey password :这些元素以一对的形式出现,表示向该Maven passphrase 进行身份验证所需的登录和密码:与前两个元素一样,这对元素指定私钥的路径(如果需要,默认为${user.home}/.ssh/id_dsa)和一个密码短语)。将来可能会外部化密码和密码元素,但现在必须在部署时在settings.xml file.
  • filePermissionsdirectoryPermissions:中将它们设置为纯文本,这些是要使用的权限。每个文件的合法值都是一个与*nix文件权限相对应的三位数字,即。664或775。

注意:如果使用私钥登录到服务器,请确保省略<password>元素。否则,密钥将被忽略。

密码加密

2.1.x和3.0中继中添加了一项新功能-服务器密码和密码短语加密。请参阅this page的详细信息。

请特别注意“注意事项”:如果使用私钥登录到服务器,请确保省略了<password>元素。否则,密钥将被忽略。因此,最终的配置将接近于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>
票数 17
EN

Stack Overflow用户

发布于 2018-01-16 16:41:05

我知道这是一个旧线程,但看起来旅行车插件正在读取settings.xml (例如用户名),但没有使用所有设置。我无法让它在scp期间停止询问Kerberos用户名/密码。(看起来2016年晚些时候插件可能有一些变化影响了这一点。)只是添加这个答案,以防它对其他人有帮助。

对我来说,解决方案甚至更简单:完全跳过使用'settings.xml‘,简单地为协议指定'scpexe’而不是'scp‘(就像在pom.xml的distributionManagement部分下)。然后使用计算机的默认SSH配置(~/.ssh下的unix设置)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>
票数 2
EN

Stack Overflow用户

发布于 2021-04-12 19:57:40

今天,我想结合maven-site-plugin (3.9.1)做同样的事情,但也遇到了一些障碍(具体地说,旅行车-ssh插件坚持要求我提供我的Kerberos用户名和密码)。wagon-ssh-3.4.3最终对我起作用的是什么?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2733447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文