#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. Извините, у меня больше нет кода моего приложения, но если вы можете опубликовать здесь часть нерабочего кода, возможно, я или кто-то еще здесь сможет вам помочь.