9
votes

Erreur fatale GIT: l'authentification a échoué dans Visual Studio

À partir d'aujourd'hui, j'obtiens des erreurs en essayant d'utiliser des commandes git avec mon référentiel dans Azure-DevOps. Les référentiels se trouvent dans un projet sur DevOps auquel je peux accéder avec le même compte et ne montrent aucun signe de modifications récentes. Les étapes que je peux suivre pour le reproduire sont:

  1. Ouvrez l'invite de commande et entrez git fetch
  2. Une fenêtre apparaît demandant une connexion S'identifier
  3. Je clique sur le compte
  4. Aucun mot de passe n'est demandé, mais un e-mail arrive indiquant qu'un PAT a été créé
  5. L'invite de commande génère une erreur

Erreur:

fatal: Authentication failed for `<link to repository>`

Les choses que j'ai essayées jusqu'à présent:

  • Redémarrage du PC
  • Déconnexion et Visual Studio sur Visual Studio
  • Suppression du dossier .IdentityService
  • Suppression et installation de GIT
  • Suppression et installation de GIT For Windows dans le Visual Studio Installer
  • Suppression du dossier de cache %LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache
  • Suppression du dossier de cache %LOCALAPPDATA%\Microsoft\Team Foundation\8.0\Cache
  • Suppression des clés GIT et VS de Credential Manager
  • Quelques autres `` correctifs '' trouvés en ligne qui n'ont pas résolu mon problème

Actuellement en cours d'exécution:

  • GIT 2.21.0-64 bits
  • Visual Studio 2019

Éditer:

J'ai essayé d'utiliser Visual Studio Code avec l'extension Azure Repos 1.149.2 et j'obtiens la même erreur. Cela me donne la page Microsoft pour entrer mon code pour la connexion de l'appareil qu'il accorde, mais l'utilisation des commandes git me donne les mêmes messages d'erreur.

Mon profil a également été supprimé de l'environnement Azure DevOps et ajouté de nouveau sans succès.


10 commentaires

Pouvez-vous vous connecter à Azure DevOps et voir le contenu du dépôt? (J'ai vu des problèmes similaires lorsque quelqu'un a accès au projet d'équipe mais pas à ses dépôts.)


essayez de mettre à jour GCfW vers la dernière version et de forcer éventuellement Visual Studio à l'utiliser: jessehouwing.net / ...


@Richard oui. J'ai accès aux dépôts sur DevOps


@jessehouwing J'ai essayé votre solution, mais malheureusement, elle ne semble pas avoir d'effet. Helper a été défini sur manager et je l'ai changé en utilisant vim en C:\\\\Program\\ Files\\\\Git\\\\mingw64\\\\libexec\\\\git-core\\\\git-creden‌​tial-manager.exe comme mentionné.


@ Bleep-Bloop ressemble à un problème d'autorisations pour moi. Avez-vous vérifié les membres de l'équipe sur le projet? Assurez-vous que votre compte est ajouté au projet et que vous êtes un administrateur (pas seulement dans l'organisation, dans les paramètres du projet en particulier)


@Jabberwocky dans les paramètres du projet sous équipe, je me vois dans le groupe de mon équipe comme d'habitude. Je me suis ajouté directement en tant Administrator , mais cela ne fait aucune différence. Je ne me suis pas non plus ajouté directement sans groupe.


Et si vous créez manuellement un PAT et fermez l'écran d'authentification à chaque fois qu'il apparaît? À un moment donné, il devrait demander une invite utilisateur / pass standard. Entrez ensuite . pour l'utilisateur et le PAT généré comme mot de passe.


Vous pouvez également activer le traçage supplémentaire pour le gestionnaire d'informations d'identification en ajoutant une variable dans vos paramètres d'environnement avant d'appeler Git. Exécutez setx GIT_TRACE %UserProfile%\git.log . Exécutez setx GCM_TRACE %UserProfile%\git.log


@jessehouwing merci pour la suggestion. J'ai essayé l'approche où il demande l'utilisateur et pw. Bien qu'il me permette de remplir un nom d'utilisateur, il ne me permet pas de taper quoi que ce soit pour le mot de passe.


Ensuite, je suggère d'ouvrir un problème ici et de joindre le fichier journal généré en définissant les valeurs ci-dessus: github.com/Microsoft/Git-Credential-Manager-for-Windows/issu‌ es


5 Réponses :


6
votes

Essayez de vérifier la valeur de git config credential.helper.

Si vous voyez «manager», ouvrez le gestionnaire d'informations d'identification Windows et mettez comme mot de passe le PAT - le jeton d'accès personnel créé - (tout en conservant votre connexion habituelle, associée à l'URL distante)

Puis réessayez et voyez si le problème persiste.


5 commentaires

Merci, mais le problème persiste. J'ai également déjà essayé de supprimer et de créer manuellement la clé.


@ Clé Bleep-Bloop? quelle clé? Clé SSH? Ce popup est pour l'authentification HTTPS (login / mot de passe ou login / PAT - token)


La clé dans le gestionnaire d'informations d'identification à l'aide d'un PAT nouvellement généré.


@ Bleep-Bloop OK, puis l'utiliser comme mot de passe devrait fonctionner (dans Windows Credential Manager, à l'entrée URL du serveur azure)


agréable. celui-ci fonctionne pour moi. J'ai cherché dans le gestionnaire d'informations d'identification Windows puis dans les informations d'identification génériques, je cherche mon lien de référentiel git là-bas et modifie son mot de passe et enregistre les modifications



8
votes

Pour forcer le gestionnaire d'informations d'identification Git à cesser d'interférer, vous pouvez ajouter ce qui suit à votre configuration git globale:

protocol=https
host=dev.azure.com
path=/jessehouwing/vsts-extensions/_git/vsts-github-tasks
{newline}

Cela désactive efficacement tout gestionnaire d'informations d'identification. Dans Azure DevOps, vous pouvez ensuite configurer un ensemble d'informations d'identification Git ou un jeton d'accès personnel et l'utiliser pour vous connecter directement.

Cela n'explique pas les problèmes que vous rencontrez. Étant donné que votre compte semble être lié à la machine et un compte AAD, beaucoup de choses peuvent être en jeu. Cela inclut les comptes AAD Home-Realm Discovery et Single Sign-on et Azure Active Directory Guest.

Un autre problème possible est votre magasin d'informations d'identification Windows, qui a plusieurs emplacements où les informations d'identification Azure DevOps et Git sont stockées. Et enfin, le compte utilisé pour se connecter à Visual Studio 2019 pour récupérer sa licence est peut-être en cours de lecture.

Avec les informations que vous nous avez fournies, il nous est pratiquement impossible de vous aider à résoudre les problèmes sans regarder par-dessus votre épaule. Je suggérerais presque de déposer une demande de support Azure si vous les avez disponibles afin qu'un ingénieur puisse regarder avec vous.

Exécuter éventuellement

git-credential-manager.exe erase

Et transmettez les données suivantes

[credential]
    helper = 

Pour dire à git de supprimer les informations d'identification stockées pour votre compte


0 commentaires

2
votes

Dans mon cas particulier, après de nombreux échanges de mails avec Microsoft, il s'est avéré que deux de mes comptes ont commencé à entrer en conflit l'un avec l'autre, provoquant des erreurs étranges. Un bon exemple était que la modification d'un wiki dans DevOps afficherait un compte différent dans l'essai de validation que le compte auquel j'étais connecté.

En fin de compte, Microsoft a réussi à résoudre ce problème et je n'ai eu aucun problème depuis.


1 commentaires

Oui. Ce serait à peu près correct - il a fallu un an pour résoudre un problème de SP. ;-)



0
votes

J'avais la même situation - tout fonctionnait dans VS 2017, mais 2019 ne fonctionnerait pas. J'ai trouvé cet article qui suggérait de mettre à jour le Git Credential Manager pour Windows . Ma version installée (dans C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe ) avait 3 ans. Téléchargé, installé et le problème a disparu pour moi.


0 commentaires

1
votes

J'ai eu un problème similaire dans VS2019, j'ai déplacé des ordinateurs portables et il a refusé de s'authentifier malgré la suppression et la modification des informations d'identification à l'aide du gestionnaire d'informations d'identification. Je suis lié à un référentiel dans Assembla et dans la fenêtre de l'explorateur d'équipe sous les paramètres du référentiel, j'ai remarqué qu'il y avait une case à cocher pour remplacer le nom d'utilisateur global et les paramètres de messagerie, qui étaient différents de ma connexion Assembla.


0 commentaires