当使用Maven 2.2:从Windows机器将文件SCPing到Linux服务器时,总是询问密码



我遵循了以下步骤:

  1. 使用gitbash在windows机器上创建了userid为ABC的SSH密钥。

  2. 使用userid root将公钥复制到linux服务器:

    scp ~/.ssh/id_rsa.pub root@Linuxserver:~/.ssh/.

    它要求输入密码并复制了文件。

  3. SSHroot@Linuxserver使用gitbash->输入的Linux服务器密码->登录到linux服务器。

  4. 将公钥复制到Linux服务器的.ssh中的authorized_keys:

    cat id_rsa.pub >> authorized_keys

  5. SSHroot@Linuxserver使用gitbash->无需询问密码即可登录

  6. SCP通过Maven无法无缝工作,总是要求提供密码。即使是Linux root用户的密码也不起作用,它一次又一次地要求输入密码。

下面在Maven设置的文件中:

<server>
    <id>Linuxserver</id>
    <username>ABC</username>
    <privateKey>${user.home}/.ssh/id_rsa</privateKey>
    <filePermissions>664</filePermissions>
    <directoryPermissions>775</directoryPermissions>
    <configuration></configuration>
</server>

以下是pom.xml的摘录:

<extensions>
      <extension>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-ssh</artifactId>
       <version>1.0-beta-6</version>
     </extension>
</extensions>
...
<plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>wagon-maven-plugin</artifactId>
      <version>1.0-beta-3</version>
      <configuration>
         <serverId>Linuxserver</serverId>
         <fromFile>${project.parent.basedir}/projectname/filename</fromFile>
         <url>scp://Linuxserver.com/testdirectory</url>
       </configuration>
       <executions>
         <execution>
           <id>upload-file-to-server</id>
           <phase>verify</phase>
           <goals>
             <goal>upload-single</goal>
           </goals>
         </execution>
       </executions>
</plugin>

我希望SCP在没有任何用户交互的情况下发生。简而言之,问题似乎是Maven SCP没有获取私钥。

让我们举一个例子:

localuser $ ssh remoteuser@server.com

现在SCP或SSH使用检查两件事(考虑公钥授权):

  1. 使用发出ssh命令的私钥,通常为~/.ssh/id_rsa。在本例中,它是/home/localuser/.ssh/id_rsa

  2. 用户的公钥,在您登录的用户的~/.ssh/authorized_keys文件中。在我们的例如远程服务器中,它将是/home/remoteuser/.ssh/Authorizedd_keys

我对Maven配置不太了解,但你似乎正试图以ABC用户的身份登录,在这种情况下,ABC用户应该在其authorized_keys文件

中拥有本地用户的密钥

相关内容

  • 没有找到相关文章

最新更新