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.
Rubriques
- Je reçois une erreur lors de l'exécution de la git config commande pour configurer l'assistant d'identification
- Je vois une erreur lors de la lecture du nom d'utilisateur lors de la tentative de clonage d'un dépôt
- Erreur « Commande introuvable » renvoyée dans Windows lors de l'utilisation de l'assistant d'informations d'identification
- Je suis invité à saisir un nom d'utilisateur lorsque je me connecte à un CodeCommit référentiel
- Git pour macOS : j'ai correctement configuré l'assistant d'identification, mais l'accès à mon référentiel me est maintenant refusé (403)
- Git pour Windows : J'ai installé Git pour Windows, mais l'accès à mon référentiel m'est refusé (403)
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 versaws.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 :
-
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 fichiersgitconfig
.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=osxkeychainLe fichier indiqué au début de cette ligne est le fichier de configuration Git que vous devez modifier.
-
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
-
Modifiez la configuration à l'aide de l'une des stratégies suivantes :
-
Commentez ou supprimez la section des informations d'identification qui contient
helper = osxkeychain
. Par exemple :# helper = osxkeychain
-
Mettez à jour les sections d'aide
aws credential helper
auxosxkeychain
informations d'identification et d'identification pour qu'elles soient contextualisées. Par exemple, s'ilosxkeychain
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'
osxkeychain
assistant 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'
osxkeychain
assistant lors de l'utilisation du profil nomméCodeCommitProfile
avec CLI :[credential] helper = helper = !aws --profile
CodeCommitProfile
codecommit credential-helper $@ UseHttpPath = trueAstuce
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 :
-
Ouvrez l'utilitaire Keychain Access. (Vous pouvez utiliser l'outil de recherche pour le localiser).
-
Rechercher
git-codecommit.
et remplacerus-east-2
.amazonaws.com.rproxy.goskope.comus-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. -
Choisissez l'onglet Access Control.
-
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 :-
Connectez-vous à CodeCommit l'aide des informations d'identification SSH ou Git au lieu de l'assistant d'identification avec. HTTPS Pour plus d’informations, consultez Pour les connexions SSH sous Linux, macOS ou Unix et Configuration pour les utilisateurs HTTPS à l'aide des informations d'identification Git.
-
Dans l'utilitaire Keychain Access, sous l'onglet Access Control pour
git-codecommit.us-east-2.amazonaws.com
, choisissez l'option Allow all applications to access this item (access to this item is not restricted). Cela permet d'éviter les fenêtres contextuelles, mais les informations d'identification finissent par expirer (en revanche, cela prendra environ 15 minutes) et vous voyez un message d'erreur 403. Dans ce cas, vous devez supprimer l'élément keychain pour restaurer les fonctionnalités. -
Installez une version de Git qui n'utilise pas le trousseau (keychain) par défaut.
-
Envisagez d'utiliser une solution de script pour supprimer l'élément keychain. Pour voir un exemple d'une solution scriptée générée par la communauté, consultez Mac OS X Script to Periodically Delete Cached Credentials in the OS X Certificate Store dans Intégrations de produits et services.
-
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'--system
option 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
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-
Ouvrez le Panneau de configuration, choisissez Credential Manager et supprimez les informations d'identification enregistrées pour CodeCommit.
-
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é. -
Ajoutez la section suivante à votre fichier
.gitconfig
:[credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
-
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-repoNote
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 pourcentageou URL en échappement).