我无法使用带有私钥的Gradle SSH Plugin连接到SSH主机。
在build.gradle
中指定密码可以正常工作:
remotes {
webServer {
host = '<IP>'
user = '<USER>'
password = '<PASSWORD>'
}
}
但是为了避免在构建文件中写入密码,我将环境设置为使用私钥进行连接,而无需从shell输入密码:
ssh <user>@<ip>
此命令可在外壳上运行,但我无法通过Gradle插件实现此功能。这是我的配置:
remotes {
webServer {
host = '<IP>'
user = '<USER>'
identity = file("${System.getProperty('user.home')}/.ssh/id_rsa")
}
}
错误是:
原因:com.jcraft.jsch.JSchException:USERAUTH在com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:119)处失败
由于我能够从外壳连接,所以我的配置出了什么问题?
我通过添加agent = true
属性来解决此问题:
我找到的解决方案-生成密钥时,请指定PEM格式: