Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 Maven货车插件可以为scp使用私钥吗?_Maven 2_Ssh_Ssh Keys - Fatal编程技术网

Maven 2 Maven货车插件可以为scp使用私钥吗?

Maven 2 Maven货车插件可以为scp使用私钥吗?,maven-2,ssh,ssh-keys,Maven 2,Ssh,Ssh Keys,Maven货车插件是否可以配置为对ssh/scp使用私钥?我尝试过的每件事都让maven在到达scp ing点时向我询问密码。我在这里找到了必要的信息: 您应该能够在settings.xml中的元素中指定私钥的路径: 用于下载和下载的存储库 部署由 存储库和 分销管理要素 POM。但是,某些设置 例如用户名和密码应该 不应随文件一起分发 xml。这类信息 应存在于中的生成服务器上 settings.xml <settings xmlns="http://maven.apache.org/S

Maven货车插件是否可以配置为对ssh/scp使用私钥?我尝试过的每件事都让maven在到达scp ing点时向我询问密码。

我在这里找到了必要的信息:

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

用于下载和下载的存储库 部署由
存储库
分销管理
要素 POM。但是,某些设置 例如用户名和密码应该 不应随文件一起分发 xml。这类信息 应存在于中的生成服务器上 settings.xml

<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>
      <password>my_password</password>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  ...
</settings>

我知道这是一个旧的线程,但它看起来像货车插件正在读取settings.xml(例如用户名),但没有使用所有的设置。我无法让它在scp期间停止请求Kerberos用户名/密码。(看起来2016年末可能对插件进行了一些更改,影响了这一点。) 只需添加此答案,以防对其他人有所帮助

对我来说,解决方案更简单:完全跳过使用“settings.xml” 只需为协议指定'scpexe'而不是'scp'(如pom.xml的distributionManagement部分)。然后使用机器的默认SSH配置(unix设置在~/.SSH下)


org.codehaus.mojo
货车司机插件
1
上传到服务器
部署
上传单个
要上载的文件
scpexe://username@要复制到的服务器名/dirname
要上载的文件

今天,我想结合maven站点插件(3.9.1)做同样的事情,同时也遇到了一些障碍(特别是,VangSSH插件坚持要求我提供Kerberos用户名和密码)。 什么东西最终对我起到了作用呢?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>

org.apache.maven.wagen
马车ssh
3.4.3
settings.xml中:

<!-- add scp support for mvn site:deploy -->
<dependency>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-ssh</artifactId>
    <version>3.4.3</version>
</dependency>

ssh存储库
普里德德夫
${user.home}/.ssh/pridkdev.ppk
664
775
假的
不
公钥

我想关键是
块,尤其是
设置。

救命答案!使用
org.apache.maven.wagen:wagen ssh
尝试私钥身份验证,但未成功
org.apache.maven.wagen:wagen-ssh-external
工作起来很有魅力。
<!-- add scp support for mvn site:deploy -->
<dependency>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-ssh</artifactId>
    <version>3.4.3</version>
</dependency>
<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>