我正在使用“mavenDeployer”在“uploadArchives”任务中使用ssh/scp, 与无人机ssh实用程序。gradle maven ssh
而不是编码密码到build.gradle,我想依靠正确的SSH设置。具体而言,我希望让用户指定他们的私钥,并在其环境中加载该私钥(ssh-agent,ssh-add等)。 Maven回购共享用户ID为 ,所有真实用户的.pub密钥都已正确添加到共享用户ID的“authorized_keys”文件 中。
虽然行家/蚂蚁似乎有一种“专用密钥”属性,以及摇篮DSL 接受它,它似乎没有任何效果,当我将它设置:
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文档中的示例,实际密码为 ,它确实有效,所以我知道事情正在发挥作用。另外,将privateKey 更改为privatekey(全部小写)会导致属性错误,所以我知道 属性存在并且在某个级别上被识别。
而且我知道SSH密钥本身的工作:
% ssh -i ~/.ssh/mavenKey [email protected] ls/
[ no errors, output trimmed ]
但是当我运行它,我得到提示共享用户ID的密码:
% gradle uploadArchives
[... stuff ...]
Using SSH key: /homes/klash/.ssh/mavenKey
Password for [email protected]:
正如你所看到的,它是不是提示输入密钥的密码。
'使用SSH密钥:/ homes/klash/.ssh/mavenKey'您的系统属性中没有拼写错误吗?应该可能是'/ home/klash/...' – 2013-03-26 08:13:45
不,没有错别字。我们的家庭装备通过自动安装,典型的大型科技公司设置在NFS上。我已经四重检查了通过什么是SSH私钥的正确路径。 – Klash 2013-03-26 20:07:24
无法看到您的代码的任何问题,我基本上做同样的事情没有问题。你正在使用哪个gradle版本?你是否试过用'-d'标志运行(它会产生很多输出,但在试图理解发生的事情时可能会有所帮助)。另一件事;你提到了ssh口令 - 你的口令是否需要这样的口令?这与我的测试有所不同,因为我的SSH私钥没有密码。 – Steinar 2013-03-28 23:01:43