Я использую Linux (arch), пытаюсь настроить Spring Cloud Config, следуя этому учебник с частным репозиторием git bitbucket с использованием ключа ssh, но я продолжаю получать сообщение об ошибке:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Request processing failed; nested exception is java.lang.IllegalStateException: Cannot
clone or checkout repository] with root cause com.jcraft.jsch.JSchException: Auth fail
Теперь, согласно туториалу, он должен работать:
Если вы не используете HTTPS и учетные данные пользователя, SSH также должен работать из коробки, когда вы храните ключи в каталогах по умолчанию (~ / .ssh), а uri указывает на расположение SSH, например «[email protected]: конфигурация / облачная-конфигурация». Важно, чтобы все ключи в ~ / .ssh / known_hosts были в формате "ssh-rsa". Новый формат «ecdsa-sha2-nistp256» НЕ поддерживается. Доступ к репозиторию осуществляется с помощью JGit, поэтому любая документация, которую вы найдете по этому поводу, должна быть применима. Параметры прокси-сервера HTTPS могут быть установлены в ~ / .git / config или таким же образом, как и для любого другого процесса JVM, через системные свойства (-Dhttps.proxyHost и -Dhttps.proxyPort).
У меня есть закрытый ключ ssh в папке ~ / .ssh с именем bitbucket-rsa, созданный с помощью команды ssh-keygen -t rsa -b 4096 -C "[email protected]"
. Открытый ключ был добавлен в Bitbucket правильно, так как я могу без проблем клонировать, извлекать и извлекать из репозитория из командной строки. Закрытый ключ был добавлен в ssh-agent, а bitbucket.org присутствует в файле known_hosts.
Вот файл bootstrap.yml в проекте config-service:
spring:
application:
name: config-service
cloud:
config:
server:
git:
uri: "[email protected]:TarekSaid/my-private-repo.git"
server:
port: 8888
Использование https с именем пользователя и паролем работает, но я все еще предпочитаю использовать ключи ssh, как мне заставить его работать?