Résolution des problèmes liés à l'assistant d'identification et aux connexions à HTTPS AWS CodeCommit - AWS CodeCommit

AWS CodeCommit n'est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus »

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés à l'assistant d'identification et aux connexions à HTTPS AWS CodeCommit

Les informations suivantes peuvent vous aider à résoudre les problèmes courants lorsque vous utilisez l'assistant d'identification inclus dans AWS CLI et pour vous connecter HTTPS aux référentiels. CodeCommit

Note

Bien que l'assistant d'identification soit une méthode prise en charge pour se connecter à CodeCommit l'aide d'un accès fédéré, d'un fournisseur d'identité ou d'informations d'identification temporaires, la méthode recommandée consiste à installer et à utiliser l'utilitaire. git-remote-codecommit Pour plus d’informations, consultez Étapes de configuration pour HTTPS les connexions AWS CodeCommit à git-remote-codecommit.

Je reçois une erreur lors de l'exécution de la git config commande pour configurer l'assistant d'identification

Problème : lorsque vous essayez d'exécuter la commande git config pour configurer l'assistant d'identification afin qu'il communique avec un CodeCommit dépôt, vous recevez un message d'erreur indiquant qu'il y a trop peu d'arguments ou une invite d'utilisation suggérant les commandes et la syntaxe de Git config.

Corrections possibles : La raison la plus courante de cette erreur est que soit des guillemets simples sont utilisés pour la commande sur un système d'exploitation Windows, soit des guillemets doubles sont utilisés pour la commande dans un système d'exploitation Linux, macOS ou Unix. La syntaxe correcte est la suivante :

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS ou Unix : git config --global credential.helper '!aws codecommit credential-helper $@'

Je vois une erreur lors de la lecture du nom d'utilisateur lors de la tentative de clonage d'un dépôt

Problème : lorsque vous essayez de cloner un dépôt à l'aide de l'assistant d'identification, un message d'erreur s'affiche indiquant que le système n'a pas pu lire le nom d'utilisateur du référentiel. URL

Corrections possibles : La raison la plus courante de cette erreur est que le fichier .gitconfig n'est pas créé ou configuré correctement sur votre ordinateur. Ouvrez votre fichier .gitconfig et assurez-vous que l'assistant d'identification est correctement défini. Si vous utilisez un ordinateur exécutant Linux, macOS ou Unix, assurez-vous également que la valeur de $HOME est correctement définie pour votre système.

Erreur « Commande introuvable » renvoyée dans Windows lors de l'utilisation de l'assistant d'informations d'identification

Problème : après la mise à jour du AWS CLI, les connexions de l'assistant d'identification aux CodeCommit référentiels échouent avec. aws codecommit credential-helper $@ get: aws: command not found

Cause : La raison la plus courante de cette erreur est que votre AWS CLI version a été mise à jour vers une version utilisant Python 3. Le MSI package présente un problème connu. Pour vérifier si votre version est concernée, ouvrez une ligne de commande et exécutez la commande suivante : aws --version

Si la version de Python de sortie commence par 3, votre version est concernée. Par exemple :

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

Correctifs possibles : Pour contourner ce problème, vous pouvez procéder de l'une des manières suivantes :

  • Installez et configurez AWS CLI le sous Windows en utilisant Python et pip au lieu deMSI. Pour plus d'informations, consultez Installer Python, pip et AWS CLI le sous Windows.

  • Modifiez manuellement votre fichier .gitconfig pour changer la section [credential] afin qu'elle pointe explicitement vers aws.cmd sur votre ordinateur local. Par exemple :

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Exécutez la git config commande pour mettre à jour votre .gitconfig fichier afin qu'il fasse référence de manière expliciteaws.cmd, et mettez à jour manuellement votre variable d'PATHenvironnement pour inclure le chemin d'accès à la commande selon les besoins. Par exemple :

    git config --global credential.helper "!aws.cmd codecommit credential-helper $@" git config --global credential.UseHttpPath true

Je suis invité à saisir un nom d'utilisateur lorsque je me connecte à un CodeCommit référentiel

Problème : lorsque vous essayez d'utiliser l'assistant d'identification pour communiquer avec un CodeCommit référentiel, un message s'affiche pour vous demander votre nom d'utilisateur.

Correctifs possibles : configurez votre AWS profil ou assurez-vous que le profil que vous utilisez est celui que vous avez configuré pour travailler CodeCommit. Pour plus d'informations sur la configuration, consultez Étapes de configuration pour les connexions HTTPS àAWS CodeCommitréférentiels sous Linux, macOS ou Unix avec leAWS CLIassistant d'identification ou Étapes de configuration pour les connexions HTTPS àAWS CodeCommitréférentiels sous Windows avecAWS CLIassistant d'identification. Pour plus d'informations sur IAM les clés d'accès et les clés secrètes, consultez les sections Gestion des clés d'accès pour IAM les utilisateurs et Comment obtenir des informations d'identification ?

Git pour macOS : j'ai correctement configuré l'assistant d'identification, mais l'accès à mon référentiel me est maintenant refusé (403)

Problème : sur macOS, l'assistant d'identification ne semble pas accéder à vos informations d'identification ou ne pas les utiliser comme prévu. Cela peut être provoqué par deux problèmes différents :

  • AWS CLI Il est configuré pour une configuration Région AWS différente de celle dans laquelle le référentiel existe.

  • L'utilitaire Keychain Access a enregistré des informations d'identification qui ont expiré depuis.

Correctifs possibles : Pour vérifier si le AWS CLI est configuré pour la bonne région, exécutez la aws configure commande et consultez les informations affichées. Si le CodeCommit référentiel se trouve dans un Région AWS emplacement différent de celui indiqué pour le AWS CLI, vous devez exécuter la aws configure commande et remplacer les valeurs par des valeurs appropriées pour cette région. Pour plus d’informations, consultez Étape 1 : Configuration initiale pourCodeCommit.

La version par défaut de Git publiée sur OS X et macOS utilise l'utilitaire Keychain Access pour enregistrer les informations d'identification générées. Pour des raisons de sécurité, le mot de passe généré pour accéder à votre CodeCommit référentiel est temporaire, de sorte que les informations d'identification stockées dans le trousseau cessent de fonctionner au bout de 15 minutes environ. Si vous accédez à Git uniquement avec CodeCommit, essayez ce qui suit :

  1. Dans le terminal, exécutez la commande git config pour trouver le fichier de configuration Git (gitconfig) dans lequel l'utilitaire Keychain Access est défini. En fonction de votre système local et de vos préférences, vous pouvez avoir plusieurs fichiers gitconfig.

    git config -l --show-origin | grep credential

    Dans le résultat de cette commande, recherchez des résultats similaires aux suivants :

    file:/path/to/gitconfig credential.helper=osxkeychain

    Le fichier indiqué au début de cette ligne est le fichier de configuration Git que vous devez modifier.

  2. Pour modifier le fichier de configuration Git, utilisez un éditeur de texte brut ou exécutez la commande suivante :

    nano /usr/local/git/etc/gitconfig
  3. Modifiez la configuration à l'aide de l'une des stratégies suivantes :

    • Commentez ou supprimez la section des informations d'identification qui contienthelper = osxkeychain. Par exemple :

      # helper = osxkeychain
    • Mettez à jour les sections d'aide aws credential helper aux osxkeychain informations d'identification et d'identification pour qu'elles soient contextualisées. Par exemple, s'il osxkeychain est utilisé pour s'authentifier auprès de GitHub :

      [credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain

      Dans cette configuration, Git utilisera l'osxkeychainassistant lorsque l'hôte distant correspond à « https://github.com » et l'assistant d'identification lorsque l'hôte distant correspond à « ». https://git-codecommit\.us-east-1\.amazonaws.com

    • Incluez un assistant de chaîne vide avant l'assistant d'identification. Par exemple, pour ne pas utiliser l'osxkeychainassistant lors de l'utilisation du profil nommé CodeCommitProfile avec CLI :

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true
      Astuce

      Vous pouvez également configurer la ligne suivant la ligne d'assistance de chaîne vide pour qu'elle ne corresponde pas CodeCommit si vous souhaitez qu'elle exclue tous les profils :

      helper = !aws codecommit credential-helper $@

    Sinon, si vous souhaitez continuer à utiliser l'utilitaire Keychain Access pour mettre en cache les informations d'identification pour d'autres référentiels Git, modifiez l'en-tête au lieu de mettre la ligne en commentaire. Par exemple, pour autoriser les informations d'identification mises en cache pour GitHub, vous pouvez modifier l'en-tête comme suit :

    [credential "https://github.com"] helper = osxkeychain

Si vous accédez à d'autres référentiels avec Git, vous pouvez configurer l'utilitaire Keychain Access afin qu'il ne fournisse pas d'informations d'identification pour vos CodeCommit référentiels. Pour configurer l'utilitaire Keychain Access :

  1. Ouvrez l'utilitaire Keychain Access. (Vous pouvez utiliser l'outil de recherche pour le localiser).

  2. Rechercher git-codecommit.us-east-2.amazonaws.com et remplacer us-east-2 avec l' Région AWS endroit où se trouve le dépôt. Mettre la ligne en surbrillance, ouvrez le menu contextuel (clic droit) et choisissez Get Info.

  3. Choisissez l'onglet Access Control.

  4. Dans Confirm before allowing access, choisissez git-credential-osxkeychain, puis sélectionnez le signe moins pour le supprimer de la liste.

    Note

    Après avoir supprimé git-credential-osxkeychain de la liste, vous voyez une boîte de dialogue contextuelle chaque fois que vous exécuterez une commande Git. Choisissez Deny pour continuer. Si vous trouvez les fenêtres contextuelles trop perturbatrices, voici quelques solutions alternatives :

Pour que Git n'utilise plus complètement l'utilitaire Keychain Access, vous pouvez le configurer de façon à ce qu'il arrête d'utiliser « osxkeychain » comme assistant d'informations d'identification. Par exemple, si vous ouvrez un terminal et exécutez la commande git config --system credential.helper, et qu'elle renvoie osxkeychain, cela indique que Git est défini pour utiliser l'utilitaire Keychain Access. Pour modifier cela, exécutez la commande suivante :

git config --system --unset credential.helper

Sachez que l'exécution de cette commande avec l'--systemoption modifie le comportement de Git à l'échelle du système pour tous les utilisateurs, ce qui peut avoir des conséquences imprévues pour les autres utilisateurs ou pour les autres référentiels si vous utilisez d'autres services de référentiel en plus de. CodeCommit Notez également que cette approche peut exiger l'utilisation de sudo et que votre compte ne disposera pas nécessairement des autorisations système suffisantes pour appliquer cette modification. Vérifiez que la commande a été appliquée correctement en exécutant à nouveau la commande git config --system credential.helper. Pour plus d'informations, consultez Personnalisation Git - Configuration Git et cet article sur le débordement de pile.

Git pour Windows : J'ai installé Git pour Windows, mais l'accès à mon référentiel m'est refusé (403)

Problème : sur Windows, l'assistant des informations d'identification ne semble pas utiliser vos informations d'identification, ni y accéder comme prévu. Cela peut être provoqué par différents problèmes :

  • AWS CLI Il est configuré pour une configuration Région AWS différente de celle dans laquelle le référentiel existe.

  • Par défaut, Git pour Windows installe un utilitaire Git Credential Manager qui n'est pas compatible avec CodeCommit les connexions utilisant l'assistant AWS d'identification. Une fois installé, il entraîne l'échec des connexions au référentiel même si l'assistant d'identification a été installé avec AWS CLI et configuré pour les connexions à. CodeCommit

  • Certaines versions de Git pour Windows peuvent ne pas être totalement conformes aux normes RFC2617 et RFC4559, ce qui peut entraîner des problèmes à la fois avec les informations d'identification Git et avec l'assistant d'identification inclus dans le. AWS CLI Pour plus d'informations, consultez Version 2.11.0(3) does not ask for username/password.

Correctifs possibles :

  • Si vous essayez d'utiliser l'assistant d'identification inclus dans le AWS CLI, pensez à vous connecter avec les informations d'identification Git au HTTPS lieu d'utiliser l'assistant d'identification. Les informations d'identification Git configurées pour votre IAM utilisateur sont compatibles avec le Git Credential Manager pour Windows, contrairement à l'assistant d'identification pour. AWS CodeCommit Pour plus d’informations, consultez Pour les utilisateurs HTTPS utilisant les informations d'identification Git.

    Si vous souhaitez utiliser l'assistant d'identification, pour vérifier si la configuration AWS CLI est correcte Région AWS, exécutez la aws configure commande et vérifiez les informations affichées. Si le CodeCommit référentiel se trouve dans un Région AWS emplacement différent de celui indiqué pour le AWS CLI, vous devez exécuter la aws configure commande et remplacer les valeurs par des valeurs appropriées pour cette région. Pour plus d’informations, consultez Étape 1 : Configuration initiale pourCodeCommit.

  • Si possible, désinstallez, puis réinstallez Git pour Windows. Lorsque vous installez Git pour Windows, désactivez la case à cocher pour l'option correspondant à l'installation de l'utilitaire Gestionnaire des informations d'identification Git. Ce gestionnaire d'informations d'identification n'est pas compatible avec l'assistant d'informations d'identification pour AWS CodeCommit. Si vous avez installé le Git Credential Manager ou un autre utilitaire de gestion des informations d'identification et que vous ne souhaitez pas le désinstaller, vous pouvez modifier votre .gitconfig fichier et ajouter une gestion des informations d'identification pour : CodeCommit

    1. Ouvrez le Panneau de configuration, choisissez Credential Manager et supprimez les informations d'identification enregistrées pour CodeCommit.

    2. Ouvrez votre fichier .gitconfig dans un éditeur de texte brut, tel que le Bloc-Notes.

      Note

      Si vous travaillez avec plusieurs profils Git, il se peut que vous ayez à la fois des fichiers .gitconfig locaux et globaux. Veillez à modifier le fichier approprié.

    3. Ajoutez la section suivante à votre fichier .gitconfig :

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. Enregistrez le fichier et ouvrez une nouvelle session de ligne de commande avant d'essayer de vous connecter à nouveau.

    Vous pouvez également utiliser cette approche si vous souhaitez utiliser l'assistant d'identification AWS CodeCommit lorsque vous vous connectez à des CodeCommit référentiels et un autre système de gestion des informations d'identification lorsque vous vous connectez à d'autres référentiels hébergés, tels que des référentiels. GitHub

    Pour réinitialiser l'assistant d'informations d'identification utilisé par défaut, vous pouvez utiliser l'option --system au lieu de --global ou --local lorsque vous exécutez la commande git config.

  • Si vous utilisez les informations d'identification Git sur un ordinateur Windows, vous pouvez essayer de contourner les problèmes de RFC non-conformité en incluant le nom d'utilisateur de vos informations d'identification Git dans la chaîne de connexion. Par exemple, pour contourner le problème et cloner un dépôt nommé MyDemoRepo dans la région USA Est (Ohio) :

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    Note

    Cette approche ne fonctionne pas si le nom d'utilisateur de vos informations d'identification Git contient un caractère @. Vous devez URL encoder le caractère (également appelé encodage en pourcentage ou URL en échappement).