Linux git clone issue - запрос пароля

У меня возникла проблема с простым клонированием git-репозитория VSTS (Azure DevOps) на моем недавно настроенном компьютере PopOS Linux. Я использую VSTS PAT (токены личного доступа).

Проблема

Следующий оператор из командной строки запрашивает у меня пароль, чего не должен:

git clone https://personalAccessToken@company.visualstudio.com/blah/_git/blah

Ответ из командной строки:

Password for 'https://personalAccessToken@company.visualstudio.com':

Если вы знакомы с PAT в VSTS, это не должно запрашивать пароль - нужно просто клонировать репо. В Windows это работает. На другой моей машине Linux, работающей под управлением Elementary OS, это работает. По какой-то причине это просто не работает в PopOS Linux.

Другие детали

  • Я не хочу использовать SSH
  • Я не хочу использовать альтернативные учетные данные (хотя я тоже пробовал этот метод, и он всегда говорит, что аутентификация не удалась).
  • Я могу успешно клонировать репозитории https без аутентификации.
  • Я пробовал несколько разных репозиториев VSTS, поэтому мы можем это исключить.
  • Я пробовал использовать несколько разных PAT.
  • Как уже упоминалось, это безупречно работает в других дистрибутивах и в Windows с использованием того же PAT / url.
  • Я не использую никаких прокси.
  • И да, я ненавижу имя PopOS, как и все остальные, но мне нравится дистрибутив.
0
0
1 076
1

Ответы 1

Не знаю, как у вас получилось:

git clone https://personalAccessToken@company.visualstudio.com/blah/_git/blah 

Когда вы это делаете, вы передаете PAT как имя пользователя HTTP Basic, что неверно и не должно было работать с какой-либо нормальной версией git.

Чтобы использовать PAT с git, вам необходимо передать PAT в качестве пароля HTTP Basic, и вы можете использовать любое имя пользователя, поскольку оно игнорируется. Итак, правильный синтаксис удаленного URL-адреса должен быть:

git clone https://git:personalAccessToken@company.visualstudio.com/blah/_git/blah 

или, возможно, даже:

git clone https://:personalAccessToken@company.visualstudio.com/blah/_git/blah 

Действительно. Согласно docs.microsoft.com/en-us/azure/devops/organizations/accounts‌ /…, «Когда вы закончите, обязательно скопируйте токен. Вы будете использовать этот токен как ваш пароль». (курсив мой)

Edward Thomson 31.10.2018 16:31

На GitHub вы можете (и должны) использовать такие токены личного доступа. Это не значит, что он будет работать с VSTS, но это не совсем безумная вещь.

rbennett485 31.10.2018 23:43

Я думаю, что мне тоже нужно это решение, но я не уверен, что ВЕСЬМА его следую. Моя организация использует Azure DevOps, и я единственный специалист по Java / J2EE. Приложению RedHat необходимо клонировать репозиторий, используя имя пользователя URL-адреса репозитория и пароль (в его диалоговом окне) из нашего репозитория Git в Azure DevOps. Я создал PAT (прочитав выше). Будет ли это URL-адрес репозитория - URL-адрес клонирования из DevOps, имя пользователя - не имеет значения, пароль - PAT (или PAT в кодировке base 64)?

Dr Dave 14.09.2020 20:24

Этот ответ был для меня действительно полезен, спасибо. Я добавил в свой ~/.bashrc функцию, которая его обертывает: devopsClone() { git clone "https://git:$1@yourorg.visualstudio.com/$2"; }. Использование: devopsClone token repo

vitale232 04.02.2021 14:03

Другие вопросы по теме