Java git-клиент с использованием jgit

#java #jsch #passphrase #jgit

#java #jsch #ключевая фраза #jgit

Вопрос:

У меня возникли некоторые трудности с клиентом git, написанным на Java. Я использую библиотеку JGit для подключения через ssh к серверу git. Проблема в том, что я не знаю, как указать путь к закрытому ключу и парольную фразу для него. Я не смог найти никаких примеров в документации JGit о том, какие функции мне нужно вызвать. Из того, что я прочитал, библиотека JGit использует JSch для подключения к серверу по ssh, а JSch поддерживает закрытые ключи и парольные фразы. У кого-нибудь есть опыт работы с этим или есть какой-то рабочий код?

Спасибо

Ответ №1:

Я никогда не использовал JGit, но, посмотрев на Javadocs (которые, по-видимому, недоступны для просмотра в Интернете, но могут быть загружены), вам нужно настроить SshSessionFactory (т. Е. Создать подкласс JSchConfigSessionFactory и переопределить его configure метод).

Объект JSch поддерживает закрытые ключи со своими addIdentity методами, а парольные фразы могут быть заданы с объектами userInfo для каждого отдельного сеанса JSch.

(Отказ от ответственности: JSch Javadoc был написан мной.)

Комментарии:

1. Ты гений! Большое вам спасибо, это сработало как шарм.

2. @azertys было бы полезно, если бы вы могли поделиться дополнительной информацией о том, как это работает для вас. Я все еще пытаюсь пройти через это. Я получаю ошибки: com.jcraft.jsch. JSchException: сбой аутентификации в com.jcraft.jsch. Session.connect(Session.java: 519) в org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:117)

3. Я понимаю, что прошло почти 6 лет, но любая помощь в этом была бы потрясающей.

4. Извините, у меня больше нет кода моего приложения, но если вы можете опубликовать здесь часть нерабочего кода, возможно, я или кто-то еще здесь сможет вам помочь.