【问题标题】:How to deploy over SCP with private key using Maven如何使用 Maven 使用私钥在 SCP 上进行部署
【发布时间】:2023-10-18 18:29:01
【问题描述】:

在 Windows 上使用 Maven,通过 SCP 传输,使用私钥。 这似乎是一个非常简单且记录在案的过程。但这对我不起作用。

在settings.xml中

<server>
  <id>myserver</id>
  <username>me</username>
  <privateKey>C:/data/home/.ssh/id_rsa</privateKey>
</server>

在 pom.xml 中

<distributionManagement>
  <repository>
    <id>myserver</id>
    <url>scp://myserver.domain.com/~me/deploy</url>
  </repository>
</distributionManagement>
<build>
  <extensions>
    <!-- Enabling the use of FTP -->
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-ssh</artifactId>
       <version>2.8</version>
    </extension>
  </extensions>
</build>

期望是,它不应该来要求我输入密码才能登录。另请注意,我不想使用外部命令使其跨平台统一工作。不过……

--- maven-deploy-plugin:2.7:deploy (default-deploy) @ sparksample ---
Downloading: scp://myserver.domain.com/~me/deploy/com/domain/myproject/1.0-SNAPSHOT/maven-metadata.xml 
The authenticity of host 'myserver.domain.com' can't be established.
RSA key fingerprint is 01:01:01:01:01:01:01:01:01:01:01:01:01:01:01:ff.
Are you sure you want to continue connecting? (yes/no): yes
: Password for me@myserver.domain.com: 

不仅要求我输入密码,而且每次都强制我接受主机密钥。 但是它确实拾取了 settings.xml 文件,因为它使用正确的用户名进行连接。

那么如何避免询问我密码并使用提供的私钥?请注意,我可以使用完全相同的私钥文件通过 ant scp 任务成功完成此操作。

【问题讨论】:

  • 您是否尝试在 settings.xml 中添加一个空的 ?使用 -X 执行目标是否会添加更多信息,为什么会失败?使用的 ssh 客户端可能使用不同的密钥格式。是用 openssh 创建的吗?
  • 不记得确切的场景,这是一个可能的原因:远程计算机上的以下权限:~、~/.ssh、~/.ssh/authorized_keys。如果我们留下篡改任何这些文件/目录的可能性,一些 sshd 实现将不允许登录。如果源是 unix,则应充分保护 ~/.ssh/rsa_id 免受 r/w 影响。
  • URL 的实际外观如何? ^^ 第一部分应该是服务器的 url,第二部分应该是文件系统上的实际路径,对吧?

标签: xml maven deployment scp


【解决方案1】:

应该正确设置读/写权限

# Current directory should not be writable by others (and preferably not by group either):
chmod o-w ~

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

# Only in case id_rsa.pub exists (644 also ok):
chmod 640 ~/.ssh/id_rsa.pub
chmod 640 ~/.ssh/authorized_keys

应正确设置所有权

设置为当前用户和默认组。通过省略组 在冒号之后,确保组重置为默认值 为该用户。

chown ${USER}: ~
chown -R ${USER}: ~/.ssh

【讨论】:

    最近更新 更多