Spring Cloud / J git / Github не работает с SSH - PullRequest
1 голос
/ 28 апреля 2020
  • Windows 10 Pro x64
  • JDK 11.0.6
  • spring-cloud-config-server 2.2.2.RELEASE

I настраиваю сервер Spring Cloud Config. Прекрасно работает с файловой системой. Прекрасно работает с https / basi c auth github backend. Теперь я пытаюсь настроить его для S SH, поэтому мне не нужно указывать свое имя пользователя и пароль в файле конфигурации.

Насколько я понимаю, Spring Cloud Config / j git используйте все настройки S SH по умолчанию, правильно? Я сделал следующее:

  1. ssh-keygen -m PEM -t rsa -b 4096 -C "xxx@xxx.net" - взял все файлы по умолчанию и без пароля. файлы были созданы в C: \ Users \ xxx.s sh.
  2. открыто c: \ users \ xxx.ssh \ id_rsa.pub, выбрано все, c & p в github
  3. run git clone git@github.com:xxx/Config.git, скопировал отпечаток SHA256 в приглашение yes / no / fingerprint, клон прошел успешно
  4. отредактировал known_hosts и удалил IP, поэтому теперь он просто читает github.com ssh-rsa AAAA...
  5. application.properties:

    spring.cloud.config.server. git. uri=git@github.com: xxx / Config. git

    spring.cloud.config.server. git .clone-on-start = true

    spring.cloud.config.server. git .strict-host-key-check = false

    spring.cloud.config.server. git .skip-ssl-validation = true

Это приводит к:

Caused by: com.jcraft.jsch.JSchException: Auth fail
    at com.jcraft.jsch.Session.connect(Session.java:519) ~[jsch-0.1.54.jar:na]
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:146) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]
    ... 31 common frames omitted

Почему я получаю ошибку аутентификации?

1 Ответ

0 голосов
/ 03 мая 2020

Одной из возможных причин может быть сервер, работающий от имени администратора вместо обычной учетной записи пользователя, что означает, что он не найдет %USERPROFILE%\id_rsa.

OP SledgeHammer подтверждает в комментарии :

J git работает против HOMEDRIVE и HOMEPATH на Windows.
Моя компания переназначает их на диск P: (хотя это не 'remap USERPROFILE).
И инструменты открывания sh (и git) работают против USERPROFILE.

Это означает, что Jsch потребуется .ssh in P:\


Другой причиной может быть формат закрытого ключа (попробуйте использовать закрытый ключ, сгенерированный с использованием старого формата OpenS SH, для тестирования)

Наконец, перепроверьте используемый URI

После изучения API j git я решил проблему.
URI в Spring Документация Cloud Config неверна. В документации указан формат

git@host:port/repo1.git

Вместо этого он должен быть

ssh://git@host:port/repo1.git

Так что в моем случае это сработало, как только я изменил его на s sh: // git@mygit: 2222 / secops / секреты. git

(вам не нужен порт 2222, просто используйте '/' вместо ':')

...