web-dev-qa-db-fra.com

Impossible de cloner un git à partir d'Azure DevOps à l'aide de PAT

Je ne peux pas cloner un référentiel simple à partir d'Azure DevOps OS: Ubuntu 18.10

Je fais ça: 

  • Passé à Azure DevOps
  • Cliquez en haut à droite sur mon nom d'utilisateur
  • Aller sur l'onglet sécurité 
  • Créez un PAT avec toute la portée (pour vous assurer qu'il n'y a pas de problème de portée )
  • Copier le PAT dans le presse-papier
  • Collez le PAT ailleurs pour confirmer que le PAT a été copié correctement (je sais… pas sûr mais c'est hors du champ de cette question)
  • Aller à ma console 
  • Problème: git clone https://myorganization.visualstudio.com/myproject/_git/myrepo/ 
  • J'entre le nom d'utilisateur et le mot de passe (le PAT)

Je continue à recevoir ce message de Git: fatal: Authentication failed for 'https://myorganization.visualstudio.com/myproject/_git/myrepo/'

Je lisais les solutions d'autres personnes mais aucune ne fonctionnait pour moi ... J'ai aussi essayé ceci:

  • Transmettez le jeton sous la forme https: // nom_utilisateur: [email protected]/myproject/_git/myrepo/ Je suis vraiment surpris que les gens disent que cela a fonctionné ... car mon copain se plaint. le: signifie le port. 
  • Essayé de Activer/désactiver le gestionnaire des identifiants de git * Essayé sous Windows et Ubuntu. 
  • J'ai essayé d'activer et de désactiver les informations d'identification simples. 
  • J'ai essayé avec les informations d'identification simples, c'est-à-dire nom d'utilisateur + mot de passe. 
  • J'ai essayé de mettre mon nom d'utilisateur dans https: // nom d'utilisateur @ ....
  • Essayé d'utiliser SSH
  • J'ai essayé d'utiliser http.extraHeader dans la commande git, l'en-tête étant 
    Autorisation: Base64Encoded de base (uname: PAT)
  • J'ai essayé d'utiliser http.extraHeader dans la commande git, l'en-tête étant 
    Autorisation: porteur PAT
  • J'ai essayé d'utiliser le client VSCode. Il génère le PAT par lui-même mais ne peut toujours pas s'authentifier et se cloner.
  • J'ai essayé d'utiliser le client Rider VSTS. Il génère le PAT par lui-même mais ne peut toujours pas s'authentifier et se cloner.
  • J'ai essayé d'utiliser le gestionnaire des informations d'identification git pour Linux. Il promet le code et lorsque nous nous authentifions dans le navigateur, il génère un PAT avec succès. Pourtant, après cela ne peut pas s'authentifier.

Une idée pourquoi cela ne fonctionne pas?

4
Jose

J'ai eu du succès en utilisant PAT comme ceci;

  1. copier l'URL de clone pour votre référentiel, par ex. git clone https://<domain>.visualstudio.com/<domain>/_git/<domain>
  2. Après que vous ayez copié votre PAT, utilisez-le comme;

git clone https://<PAT>@<domain>.visualstudio.com/<domain>/_git/<domain>

Le nom d'utilisateur et le mot de passe devraient être requis, car le PAT devrait suffire.

2
jabu.hlong

Essayez: Commencez par supprimer les informations d'identification git de Credential Manager . Essayez de générer un nouveau jeton d'accès personnel pour résoudre cette erreur.

 Error

Allez dans sécurité -> Jeton d'accès personnel-> Ajouter Donnez une description, sélectionnez Toutes les étendues, cliquez sur Créer un jeton.

 PAT

Copiez le jeton et stockez-le pour une utilisation ultérieure. Ce jeton peut maintenant être utilisé à la place du mot de passe pour l'utilisateur git. 

 Token

0
Salman

Vous devez encoder votre jeton en base64 et l'ajouter comme en-tête d'autorisation HTTP. Cela peut être fait avec OpenSSL:

PAT="enter-your-pat-here"
REPO_URL="https://[email protected]/myorg/myproject/_git/myrepo"

AUTH=$(echo -n ":$PAT" | openssl base64 | tr -d '\n')

git -c http.$REPO_URL.extraHeader="Authorization: Basic $AUTH" clone $REPO_URL

echo -n "..." | ... | tr -d '\n' est une astuce Linux habituelle pour envoyer une chaîne en entrée à une commande nécessitant normalement une entrée de la part de l'utilisateur (essayez d'écrire simplement openssl base64 et vous verrez).

Notez le ":" dans echo -n ":$PAT". Ceci est dû au fait que "l'utilisateur" manque dans le format normal de "utilisateur: jeton".

Pour éviter de ressaisir l'option de configuration avec chaque commande git, vous pouvez ajouter l'en-tête d'autorisation à votre configuration git locale ou globale:

git config --global http.$REPO_URL.extraHeader "Authorization: Basic $AUTH"

Affichez vos modifications avec:

git config --global --edit
0
Sebastian N

Il s'agit d'une régression connue dans curl 7.61.0, livrée avec Ubuntu 18.10. La régression a été corrigée dans curl 7.61.1, mais Ubuntu 18.10 n'a pas encore ce correctif. Voir (et plus de votes positifs) https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1805203

0
Congyi Wu