Прежде чем я начну, позвольте мне сказать, что я прочитал все другие сообщения на подобные темы и не нашел решения.
Мой удаленный репозиторий git (Gitea) размещен на VPS с поддержкой https, а сервер настроен для аутентификации клиента SSL, поэтому пользователю требуется предоставить сертификат клиента SSL. Репо можно просмотреть через веб-страницу после импорта сертификата клиента в браузер.
Используя Eclipse, я успешно клонировал проект в локальном git хранилище до , добавив аутентификацию клиента SSL на удаленный сервер. Затем я активировал аутентификацию клиента SSL на сервере.
Когда я фиксирую изменения кода в Eclipse и затем использую git push
для удаленного источника из командной строки, сервер успешно аутентифицирует клиента, и изменения без проблем передаются в удаленное хранилище.
Но когда я пытаюсь подключить sh к удаленному устройству из Eclipse, происходит сбой с ошибкой «Не удается подключиться ни к какому репозиторию - git -receive-pack not разрешен».
git параметры конфигурации в Eclipse включают следующую конфигурацию http:
http.sslCert=/home/tim/keys/ssl-client.full.pem
sslCertPassword=false
sslKey=/home/tim/keys/ssl-client.key
sslVerify=false
Поскольку эти параметры работают нормально, используя git push
из командной строки, это подтверждает правильность конфигурации. Что еще мне нужно настроить в Eclipse для успешного запуска Eclipse pu sh?
(Обратите внимание также, что попытка клонирования или извлечения из удаленного репозитория с активной аутентификацией клиента SSL приводит к аналогичному поведению - отлично работает с git из командной строки, но не с Eclipse.)
Обновление: nginx веб-сервер предоставляет доступ https к удаленному репозиторию, а в журнале nginx это показано:
"GET /TimLearning/learning.git/info/refs?service=git-receive-pack HTTP/1.1" 403 153 "-" "JGit/5.7.0.202003110725-r" "-"
Когда я копирую URL-адрес в браузер и префикс его с URL-адресом моего сервера, В браузере появляется стандартное окно аутентификации basi c (имя пользователя / пароль). Когда я ввожу имя пользователя / пароль, он возвращает веб-страницу с этим:
f285f5e7cd96a94a94caaa199cc97a7e78832e3b refs/heads/master
, который является правильным ответом. Таким образом, кажется, что когда Eclipse пытается выполнить pu sh, он вызывает j git для запуска git -receive-pack, чтобы получить вышеуказанную информацию, но терпит неудачу, потому что j git не передает требуемое имя пользователя / пароль , Ключ. Интересно, как настроить Eclipse для передачи необходимых учетных данных в j git?