我按照以下步骤操作:
使用 git bash 在 Windows 机器上使用用户 ID ABC 创建 SSH 密钥。
使用用户 ID root 将公钥复制到 linux 服务器:
scp ~/.ssh/id_rsa.pub root@Linuxserver:~/.ssh/.
它要求输入密码并复制文件。
使用 git bash SSH root@Linuxserver -> 输入 Linux 服务器密码 -> 登录到 linux 服务器。
将公钥复制到 Linux 服务器的 .ssh 中的 authorized_keys:
cat id_rsa.pub >> authorized_keys
SSH root@Linuxserver 使用 git bash -> 无需输入密码即可登录
通过 Maven 的 SCP 不能无缝运行,并且总是要求输入密码。即使是 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 没有获取私钥。