Maven 格雷德尔·马文·宋承宪

Maven 格雷德尔·马文·宋承宪,maven,gradle,Maven,Gradle,我使用“mavenDeployer”在“uploadArchives”任务期间使用ssh/scp, 使用马车ssh实用程序 我不想在build.gradle中编写密码,而是希望依赖正确的ssh设置。具体地说,我希望让用户指定他们的私钥,并将该私钥加载到他们的环境中(ssh代理、ssh添加等)。maven repo有一个共享用户ID, 所有真实用户都将其.pub密钥正确添加到“authorized_keys”文件中 共享用户ID的名称 虽然maven/ant似乎有一个“privateKey”属性,

我使用“mavenDeployer”在“uploadArchives”任务期间使用ssh/scp, 使用马车ssh实用程序

我不想在build.gradle中编写密码,而是希望依赖正确的ssh设置。具体地说,我希望让用户指定他们的私钥,并将该私钥加载到他们的环境中(ssh代理、ssh添加等)。maven repo有一个共享用户ID, 所有真实用户都将其.pub密钥正确添加到“authorized_keys”文件中 共享用户ID的名称

虽然maven/ant似乎有一个“privateKey”属性,而GradleDSL 接受它,当我设置它时,它似乎没有任何效果:

        mavenDeployer {
            configuration = pr.configurations.publishJars
            String keyFile = System.properties["user.mavenKey"]
            repository(url: "scp://maven.company.com/path/to/maven") {
                    logger.info("Using SSH key: ${keyFile}")
                    authentication(userName: "maven", privateKey: keyFile)
            }
如果我按照gradle文档中的示例输入实际密码, 它确实有效,所以我知道一切都在起作用。另外,更改私钥 私钥(全部小写)会导致属性错误,因此我知道 属性存在并在某个级别被识别

我知道ssh密钥本身正在工作:

  % ssh -i ~/.ssh/mavenKey maven@maven.company.com ls /
  [ no errors, output trimmed ]
但当我运行它时,系统会提示我输入共享用户ID的密码:

  % gradle uploadArchives
  [... stuff ...]
  Using SSH key: /homes/klash/.ssh/mavenKey
  Password for maven@evomaven.englab.juniper.net: 

如您所见,它不会提示您输入密钥的密码短语。

请确保您的私钥不需要密码短语。
您可以使用ssh从命令行访问远程服务器吗maven@evomaven.englab.juniper.net没有提示输入密码?

如果不使用ssh复制id将公钥发送到服务器。

使用ssh密钥:/homes/klash/.ssh/mavenKey
您的系统属性中是否存在键入错误?应该是
/home/klash/…
不,没有输入错误。我们的主目录通过自动挂载(典型的大型科技公司设置)安装在NFS上。我已经四次检查了所传递的是SSH私钥的正确路径。看不出您的代码有任何问题,我基本上在做相同的事情,没有问题。您使用的是哪种gradle版本?您是否尝试过使用“-d”标志运行(它会产生大量输出,但在尝试了解发生了什么时会很有帮助)。还有一件事您提到了ssh密码短语-在您的设置中需要这样的密码短语吗?这与我所测试的有所不同,因为我的ssh私钥没有密码短语。