Я обновил свой Ubuntu до 18.10 (с 17.10). Теперь я не могу подключиться к серверу Microsoft Visual Studio Team Foundation Server моего проекта (версия 16.131.27701.1) из интерфейса командной строки. (Я не работал над хранилищем в течение двух недель. Поэтому я не знаю, изменилась ли и серверная сторона за это время.)
$ git fetch
Username for 'http://....net:8080': NUNNI
Password for 'http://NUNNI@....net:8080':
fatal: Authentication failed for 'http://....net:8080/tfs/AE/_git/AE-VMT/'
(Да, это не HTTPS, а через какой-то VPN.)
К сожалению, я не смог найти полезного ответа на мою ситуацию.
Некоторые исследования показали:
$ GIT_CURL_VERBOSE=2 git fetch
...
< WWW-Authenticate: Bearer
< WWW-Authenticate: Negotiate
< WWW-Authenticate: NTLM
...
Похоже, что Negotiate (Kerberos или NTLM) или NTLM объявляются для аутентификации через заголовки HTTP.
curl --negotiate "http://NUNNI:<password>@....net:8080/tfs/AE/_git/AE-VMT"
не работает; Заголовочный элемент HTML:
TF400813: Resource not available for anonymous access. Client authentication required. - Microsoft Team Foundation Server
Принимая во внимание
curl --ntlm "http://NUNNI:<password>@....net:8080/tfs/AE/_git/AE-VMT"
отлично работает.
Насколько я понял, https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/understanding-http-authentication, Negotiate
предпочтительнее, чем NTLM
.
Так что для меня это выглядит так, как будто cURL не работает для Negotiate
в этой ситуации. (Насколько я понял в документации MS, при подключении следует предпочитать Kerberos, если он доступен, и использовать NTLM, если Kerberos недоступен.)
Вопросы:
- Как я могу проверить, не поддерживается ли Kerberos серверной стороной или моим локальным cURL.
- Можно ли заставить git использовать
NTLM
вместо Negotiate
. (Я читал кое-что о HTTP / NTLM-прокси в разных статьях stackoverflow, но он не работал, когда я пытался настроить Git-репозиторий для NTLM-прокси - я не ожидал, что это сработает.)
- Какие-нибудь другие идеи, чтобы решить проблему или получить более подробную информацию о том, что происходит?
Большое спасибо!