Я использую «mavenDeployer» для использования ssh/scp во время задачи «uploadArchives», с утилитами wagon ssh.gradle maven ssh
Вместо того, чтобы закодировать пароль в build.gradle, я хотел бы полагаться на правильную настройку ssh. В частности, я хочу, чтобы пользователь указывал свой секретный ключ, и этот закрытый ключ загружался в их среду (ssh-agent, ssh-add и т. Д.). У maven repo есть общий идентификатор пользователя , и все реальные пользователи имеют свой .pub ключ, правильно добавленный в файл authorized_keys общего идентификатора пользователя.
Хотя Maven/муравей, кажется, имеют атрибут «PrivateKey», а Gradle 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)
}
Если я код в фактический пароль в соответствии с примером в документации по градуированию, он действительно работает, поэтому я знаю, что все работает. Кроме того, изменение privateKey на privatekey (все в нижнем регистре) вызывает ошибку свойства, поэтому я знаю, что свойство существует и распознается на некотором уровне.
И я знаю, сам ключ SSH работает:
% ssh -i ~/.ssh/mavenKey [email protected] ls/
[ no errors, output trimmed ]
Но когда я запускаю его, я получаю запрос на ввод пароля общего доступа идентов:
% gradle uploadArchives
[... stuff ...]
Using SSH key: /homes/klash/.ssh/mavenKey
Password for [email protected]:
Как вы можете видеть, что это не запрос кодовой фразы для ключа.
'Использование ключа SSH:/homes/klash/.ssh/mavenKey' Нет ли опечатки в свойстве системы? Должно быть, должно быть '/ home/klash/...' –
Нет, нет опечатки. Наши дома находятся на NFS, через автомонтировку, типичную крупно-техническую компанию. Я проверил четыре раза, что передается правильный путь к закрытому ключу SSH. – Klash
Не вижу проблем с вашим кодом, я в основном делаю то же самое без проблем. Какую версию градиента вы используете? Вы пытались работать с флагом '-d' (он производит _a lot_ вывода, но может быть полезен при попытке понять, что происходит). Еще одна вещь; вы упоминаете sph passphrase - это такая фраза, которая требуется в вашей настройке? Это было бы отличным от того, что я тестировал, поскольку мой закрытый ключ ssh не имеет ключевой фразы. – Steinar