Git-аутентификация не удалась только для TFS 2018
Я недавно собрал сервер TFS 2018 и настроил его как git. В течение нескольких месяцев все работало нормально, пока на прошлой неделе я не увидел следующую ошибку:
C:\temp\git>git clone https://tfs.mycompany.com/project/team/_git/framework
Cloning into 'framework'...
fatal: Authentication failed for 'https://tfs.mycompany.com/project/team/_git/framework/'
После почти недели устранения неполадок я не приблизился к выяснению первопричины проблемы. Все, что я пробовал, приводит к одной и той же ошибке. Все решения, которые я нашел в сети и в SO, не работали, т.е. удаление папки git, удаление git, переустановка git, удаление файла.cache, что угодно... ничего не изменило.
Сегодня я обнаружил, что могу использовать клиент git для windows с нашим старым экземпляром TFS 2015 и github без каких-либо ошибок, так что, похоже, это проблема только TFS 2018. Я искал и искал любые параметры безопасности, которые могли бы измениться, но не могу найти ничего связанного с безопасностью, которое я мог бы изменить, которое могло бы повлиять на это в этой усадьбе. Я также проверил сертификат сервера, и он действителен в течение еще одного года, так что я не думаю, что это так.
Я также обнаружил, что Visual Studio 2015 может клонировать и синхронизировать с сервером TFS 2018 - без ошибок аутентификации. Очевидно, что у него есть собственный встроенный клиент git, который не подвержен влиянию проблем с аутентификацией в клиенте git для Windows. Visual Studio 2017 выдает ту же ошибку, что и git для клиента Windows, поэтому я предполагаю, что он использует этот клиент под капотом, в отличие от vs2015.
На данный момент я использую самый последний git для Windows-клиента, и это единственный установленный клиент (кроме vs2015) - удалены все другие git-клиенты, т.е. TortoiseGit. Также обратите внимание, что я удалил все кредиты Windows для сервера TFS 2018, и мне никогда не предлагалось ввести имя пользователя или пароль, как предлагалось в статьях Microsoft. У меня также не запрашиваются кредиты для сервера TFS 2015, но диспетчер учетных данных имеет действительные учетные данные для этого сервера.
Кто-нибудь знает, что здесь может быть не так? Наш сервер в настоящее время совершенно бесполезен, поскольку никто не может синхронизировать изменения.
2 ответа
Изменена аутентификация сервера TFS на NTLM, и клон GIT работал как положено. Я полагаю, что обновление 3 изменяет его на аутентификацию Kerberos, либо не спрашивая, либо, может быть, я его замял Ниже приведена команда, чтобы изменить его обратно.
C:\Program Files\Microsoft Team Foundation Server 2018\Tools>TFSConfig Authentication /provider:NTLM /siteType:ApplicationTier
Во-первых, проверьте ваш помощник учетных данных: он мог кэшировать неверные учетные данные:
git config credential.helper
Во-вторых, проверьте все ваши настройки:
git config -l --show-origin
Ищите любую директиву вместо этого, которая могла бы изменить URL-адрес https на SSH.