2015-12-29 1 views
0

Mon ordinateur portable local est un Mac.git clone en cours d'exécution contre AWS CodeCommits me obtient une erreur 403

  1. La clé ssh est configurée correctement. Ceci est le contenu de ~/.ssh/config

    Host barthea Hostname git-codecommit.us-east-1.amazonaws.com User AVVVVVVVVVVVVVVVVVQ IdentityFile ~/.ssh/aws-aws.pem

Courir barthea ssh moi obtient

`You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-1.amazonaws.com closed by remote host. 

` 2. J'ai créé un utilisateur IAM bruce666 complet avec mot de passe et l'accès clés, fait de cet utilisateur une partie du groupe "équipe". Puis j'ai créé une politique qui inclut "AWSCodeCommitPowerUsers" et assigné cette politique à "équipe". Et finalement assigné bruce666 à "équipe". À ce stade, bruce666 peut accéder à tout repo dans CodeCommit via la console de gestion.

  1. j'ai couru aws config --profile bruce666, nourri dans son accès et clé secrète, sa région et à préciser le format JSON. À ce stade, j'ai pu créer le repo Rekha dans CodeCommmit en exécutant aws codecommit get-dépôt rekha --repository nom --profile bruce666

  2. Je peux créer deux fichiers factices, exécutez git init, git ajouter., git commit -m "1", git add origine https://git-gitcode.amzonaws.com/repos/v1/rekha, git push -u origine maître Et cette opération sera couronnée de succès.

  3. Cependant, quand je lance ssh clone git: //git-gitcode.amazonaws.com/repos/v1/rekha, je reçois « fatale: impossible d'accéder 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/barthia/': L'URL demandée a renvoyé l'erreur: 403 "Qu'est-ce qui donne?

Répondre

0

Je l'ai résolu.

Le message d'erreur 403 est un message d'erreur spécifiquement Git. J'ai ajouté les deux commandes auxiliaires spécifiées par AWS:

git config --global credential.helper '!aws --profile bruce666 codecommit credential-helper [email protected]' 
git config --global credentials.helper UseHttpPath=true 

et qui a pris en charge le problème.

Le .git/config fichier dans votre répertoire local (avant de cloner le vous repo Codecommit qui venait juste créé devrait ressembler à ceci:

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
    precomposeunicode = false 
[credential] 
    helper = !aws --profile bruce666 codecommit credential-helper [email protected] 
    UseHttpPath = true 
[remote "origin"] 
    url = https://git-codecommit.us-east-1.amazonaws.com/v1/repos/barthea 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

Comme spécifié dans le .git/config fichier, vous clonez en utilisant https pas ssh. Je ne dois pas avoir utilisé la version par défaut de git qui est venu avec OSX parce que je n'ai pas rencontré de problème de chaîne d'outils.

2

This helpful text is found on the AWS documentation for codecommit and Windows integration

If your installation of Git for Windows included the Git Credential Manager utility, you will see 403 errors or prompts to provide credentials into the Credential Manager utility after the first few connection attempts. The most reliable way to solve this problem is to uninstall and then reinstall Git for Windows without the option for the Git Credential Manager utility, as it is not compatible with AWS CodeCommit.

If you want to keep the Git Credential Manager utility, you must perform additional configuration steps to also use AWS CodeCommit, including manually modifying the .gitconfig file to specify the use of the credential helper for AWS CodeCommit when connecting to AWS CodeCommit.

Remove any stored credentials from the Credential Manager utility (you can find this utility in Control Panel).

Once you have removed any stored credentials, add the following to your .gitconfig file, save it, and then try connecting again from a new command prompt window:

[credential "https://git-codecommit.us-east-1.amazonaws.com"] 
    helper = !aws codecommit credential-helper [email protected] 
    UseHttpPath = true 

Additionally, you might have to re-configure your git config settings by specifying --system instead of --global or --local before all connections work as expected.

Cette dernière partie appliquée à ma situation, mais quand je courais config git --system il n'a pas fonctionné comme prévu, mais aws jointes avant de configurer les Aws codecommit commande .

J'ai donc dû exécuter ceci dans git pour trouver l'emplacement du fichier de configuration pour le système.

git config --list --show-origin 

J'ai ensuite ajouté la section suggéré de AWS à la fois mon c: /users/username/.gitconfig et mon c:/ProgramData/Git/fichiers de configuration.

Après cette poussée git a commencé ouvrière même si je reçois l'erreur usurpateurs en face de ma réponse

"git: 'credential-aws' is not a git command. See 'git --help'." 
+1

Ceci est la réponse la plus utile (au moins pour moi). L'erreur que j'ai faite était d'installer git avec l'utilitaire de gestion des informations d'identification. Pour contourner ce problème, vous désinstallez git, puis installez-le et désactivez l'utilitaire de gestion des informations d'identification. Après ça ça a marché comme un charme. Merci. –

2

Pour moi, la cause profonde d'obtenir l'erreur est que quelle que soit la version de git j'étais en utilisant sur OSX, GIT a toujours été ramasser les config credential.helper d'utiliser osxkeychain du fichier:

/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig 

se débarrasser de cette résolu le problème pour moi et n'a rien de cassé.

+0

Cela a fonctionné pour moi – Rob

+0

Merci! Dans mon cas, le premier clone et le commit ont fonctionné pour une raison quelconque - mais alors pas d'aller. – Kvisle

0

Je fais également face à la même erreur 403 lors de l'utilisation de la commande git push dans Windows. J'ai fait tous les paramètres mentionnés dans les documents AWS, mais non résolu mon problème. Après avoir revu l'ensemble des informations d'identification git via Windows Credential comme indiqué sur l'écran. J'ai trouvé au lieu de git https informations d'identification, il a défini la clé d'accès/clé secrète (ne sais pas comment).

enter image description here

Cliquez sur le lien d'édition, des titres de compétences de mise à jour avec des titres de compétences git approprié généré pour AWS utilisateur, tout a bien fonctionné.