градул мавен ssh

Я использую «mavenDeployer» для использования ssh/scp во время задачи «uploadArchives» с утилитами wagon ssh.

Вместо того, чтобы кодировать пароль в build.gradle, я хотел бы полагаться на правильную настройку ssh. В частности, я хочу, чтобы пользователь указал свой закрытый ключ и загрузил этот закрытый ключ в свою среду (ssh-agent, ssh-add и т. д.). Репозиторий maven имеет общий идентификатор пользователя, и у всех реальных пользователей их ключ .pub правильно добавлен в файл «authorized_keys» общего идентификатора пользователя.

Хотя у maven/ant, похоже, есть атрибут «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)
            }

Если я ввожу фактический пароль в соответствии с примером в документации Gradle, он действительно работает, поэтому я знаю, что все работает. Кроме того, изменение 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]: 

Как видите, он НЕ запрашивает парольную фразу для ключа.


person Klash    schedule 26.03.2013    source источник
comment
Using SSH key: /homes/klash/.ssh/mavenKey Нет ли опечатки в свойстве System? Вероятно, должно быть /home/klash/...   -  person Hiery Nomus    schedule 26.03.2013
comment
Нет, опечатки нет. Наши домашние каталоги находятся в NFS через автоматическое монтирование, что типично для крупных технологических компаний. Я четырежды проверил, что то, что передается, является правильным путем к закрытому ключу SSH.   -  person Klash    schedule 27.03.2013
comment
Не вижу никаких проблем с вашим кодом, я в основном делаю то же самое без проблем. Какую версию Gradle вы используете? Пробовали ли вы работать с флагом '-d' (он производит много вывода, но может быть полезен при попытке понять, что происходит). Еще одна вещь; вы упоминаете парольную фразу ssh - требуется ли такая парольная фраза в вашей настройке? Это будет отличаться от того, что я тестировал, поскольку мой закрытый ключ ssh не имеет парольной фразы.   -  person Steinar    schedule 29.03.2013


Ответы (1)


Убедитесь, что ваш закрытый ключ не требует фразы-пароля.
Можно ли получить доступ к удаленному устройству из командной строки, используя ssh [email protected] без запроса пароля?
Если не использовать ssh- copy-id для отправки открытого ключа на сервер.

person Corneil du Plessis    schedule 15.04.2014