当前位置: 首页 > 知识库问答 >
问题:

为什么Maven在部署scp时不使用我的私钥?

欧桐
2023-03-14

我正在使用Maven 3部署到我们的集群。在我的设置中设置了私钥。xml以及pom中的存储库。xml。目前一切正常,除了在我调用mvn clean deploy时被要求输入密码之外。如果我使用

settings.xml

<server>
    <id>company_cluster</id>
    <username>user</username>
    <privateKey>/home/user/.ssh/user</privateKey>
</server>

波姆。xml

<build>
    <!-- ... -->
    <extensions>
        <!-- Enabling the use of SSH -->
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.4</version>
        </extension>
    </extensions>

</build>

<distributionManagement>
    <repository>
        <id>company_cluster</id>
        <url>scp://client.hadoop.company.at/home/user/deploy/</url>
    </repository>
</distributionManagement>

我在本地机器上生成了一个ssh密钥,然后使用

ssh-copy-id user@client.hadoop.company.at

将其添加到授权密钥。


共有2个答案

郭弘盛
2023-03-14
mvn -U clean install -D skipTests

导致出现错误消息:

Could not transfer artifact ... from/to ...-repository (scp://.../repo/releases/): Cannot connect. Reason: invalid privatekey: [...-> [Help 1]

我找到了这个链接https://help.mulesoft.com/s/article/Issue-with-key-based-authentication-while-connecting-to-SFTP-server

检查了我新生成的密钥,就像:

-----BEGIN OPENSSH PRIVATE KEY-----
...

在我以前的(工作)环境中,它是:

head -2 id_rsa
-----BEGIN RSA PRIVATE KEY-----
...

因此,上面链接的提示是使用:

ssh-keygen -t rsa -b 4096 -m PEM

这意味着要创建一个新密钥-我已经将带有ssh副本id的密钥部署到了很多服务器上。。。

在Openssh私钥到RSA私钥(如果找到)的过程中进行密钥转换。

ssh-keygen -p -N "" -m pem -f  id_rsa

将格式更改为RSA

head -1 id_rsa
-----BEGIN RSA PRIVATE KEY-----

并导致mvn错误消息消失。

傅越
2023-03-14

这是一个古老的问题,但我花了足够的时间在非常相似的问题,认为值得它张贴答案。您不能在设置中的服务器节点中同时提供用户名私钥。xml文件。所以在设置中。xml文件应如下所示:

  <server>
    <id>company_cluster</id>
    <privateKey>/home/user/.ssh/user</privateKey>
  </server>
 类似资料:
  • 我的mavensettings.xml如下,如你所见,没有超文本传输协议repository url,所有repository url都是以https开头的。 当我执行 gradle 构建时,它说我使用不安全的协议。事实上,我从来没有在我的专家设置中使用过http协议.xml。我们可以看到所有存储库 URL 都以“https://”开头。任何人都可以给我一些建议吗? 我的gradle版本是7.4部

  • 我正在生成一个许可证密钥有效载荷,该有效载荷使用私钥用RSA加密,然后使用公钥解密,以在我面向用户的软件中利用许可证有效载荷。我加密而不是签名,所以我只需要向我的用户传递一个字符串,而不是传递密钥和签名。 但我在使用OAEP填充和私钥加密时遇到了问题: 回复:https://repl.it/repls/LavishEarnestWifi. 运行此操作会引发错误:。使用公钥加密允许我使用OAEP,但

  • 通常在使用AWS RDS时,实现高可用性的推荐实践是在不同的AZ中部署热副本(多AZ部署)。此外,还可以创建一些读取副本来提高读取性能。 我读过AWS Aurora文档,它使用公共虚拟存储层,在3个AZ上复制,每个AZ有两个副本。 我的问题是:如果Aurora本身能够自愈,并且存储分布在多个AZ,那么是否需要使用Aurora DB集群的Amazon MultiAZ部署?如果它在3个AZ中各保留2个

  • 问题内容: 在阅读有关同步的内容时,我遇到了“监视器模式”以封装可变状态。 以下是示例代码 } 用私有锁代替固有锁更好吗? 问题答案: 是的-这意味着您可以看到 所有可能获得该锁的代码 (不考虑反射的可能性)。 如果您锁定(这是我假设您通过“固有锁定”所指的),那么其他代码可以做到: 该代码可能与自己的代码相距很远,并且可能调用其他方法,这些方法又将监视器带走。在这里很容易陷入死锁领域,因为您不容

  • 我有一个在dev环境下运行的grails应用程序,我毫无问题地完成了这场战争 在服务器中,我使用“sudo service tomcat7 stop”命令停止服务,并将war文件放入服务器文件夹“/var/lib/tomcat7/webapps”,然后使用命令“sudo service tomcat7 start”再次启动服务器。为了检查服务器的状态,我运行“sudo service tomcat

  • 我有一张表有这样的关系: 我打电话给孙子、孩子和父母只是为了说明这个问题...不是继承问题 Child.java 我正试图直接删除一个带有级联类型的父对象。我觉得没什么问题。但当我试图删除时,我得到: 08-26 11:36:33,755错误[SqlExceptionHelper]无法删除或更新父行:外键约束失败(.>id))2020-08-26 11:36:33,773信息[AbstractBa