запуск git clone против AWS CodeCommits вызывает ошибку 403

Мой локальный ноутбук - Mac.

  1. Ключ ssh настроен правильно. Это содержимое ~/.ssh/config

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

Запуск SSH Barthea получает меня

'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. Я создал пользователя IAM bruce666 в комплекте с паролем и ключами доступа, сделал этого пользователя частью группы "team". Затем я создал политику, включающую "AWSCodeCommitPowerUsers", и назначил эту политику "team". И наконец назначил bruce666 в "команду". На этом этапе bruce666 может получить доступ к любому репо в CodeCommit через консоль управления.

  1. Я запустил конфигурацию aws --profile bruce666, указал его доступ и секретный ключ, его регион и указал формат в json. К этому моменту я смог создать репо Rekha в CodeCommmit, запустив aws codecommit get-repository --repository-name rekha --profile bruce666

  2. Я могу создать пару фиктивных файлов, запустить git init, git add. , git commit -m "1", git add origin https://git-gitcode.amzonaws.com/repos/v1/rekha, git push -u origin master И эта операция будет успешной.

  3. Однако, когда я запускаю git clone ssh://git-gitcode.amazonaws.com/repos/v1/rekha, я получаю "фатальный: не могу получить доступ" https://git-codecommit.us-east-1.amazonaws. com/v1/repos/barthia/ ': запрошенный URL вернул ошибку: 403 "Что дает?

Ответ 1

На MAC, если вышеупомянутые трюки не работают, сделайте следующее:

  1. Открытый доступ к связке ключей
  2. Поиск CodeCommit. Вы должны найти это:

enter image description here

  1. Выберите "git-codecommit...." и нажмите "удалить"
  2. .Подтвердите удаление.

Теперь попробуйте еще раз. Он должен работать. Возможно, вам придется сделать это снова в следующий раз, когда вы столкнетесь с ошибкой 403.

Одной из возможных причин этой проблемы является пароль цепочки для ключей, отличный от пароля для входа на ваш MAC.

Ответ 2

Я также сталкиваюсь с той же ошибкой 403 при использовании команды git push в Windows. Я выполнил все настройки, упомянутые в документации AWS, но не решил мою проблему. После того, как я рассмотрел набор учетных данных git через учетные данные Windows, как показано на экране. Я нашел вместо учетных данных git https, он установил ключ доступа/секретный ключ (не знаю, как).

enter image description here

Нажмите на ссылку "Изменить", обновите учетные данные с помощью соответствующих учетных данных git, сгенерированных для пользователя AWS, все работает нормально.

Ответ 3

Этот полезный текст можно найти в документации AWS для codecommit и интеграции с Windows.

Если ваша установка Git для Windows включала в себя утилиту Git Credential Manager, вы увидите 403 ошибки или приглашения ввести учетные данные в утилиту Credential Manager после первых нескольких попыток подключения. Самый надежный способ решить эту проблему - это удалить, а затем переустановить Git для Windows без опции для утилиты Git Credential Manager, поскольку она несовместима с AWS CodeCommit.

Если вы хотите сохранить утилиту Git Credential Manager, вы должны выполнить дополнительные шаги по настройке, чтобы также использовать AWS CodeCommit, включая ручное изменение файла .gitconfig, чтобы указать использование помощника по учетным данным для AWS CodeCommit при подключении к AWS CodeCommit.

Удалите все сохраненные учетные данные из утилиты Credential Manager (вы можете найти эту утилиту в Панели управления).

После того как вы удалили все сохраненные учетные данные, добавьте в файл .gitconfig следующее, сохраните его и попробуйте снова подключиться из нового окна командной строки:

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

Кроме того, вам, возможно, придется заново настроить параметры конфигурации git, указав --system вместо --global или --local, прежде чем все соединения будут работать должным образом.

Эта последняя часть применима к моей ситуации, хотя, когда я запустил git config --system, он не работал должным образом, но добавил aws configure перед командой aws codecommit.

Поэтому мне пришлось запустить это в git, чтобы найти расположение файла конфигурации для системы.

git config --list --show-origin

Затем я добавил предложенный раздел из AWS в мои файлы конфигурации c: /users/username/.gitconfig и c: /ProgramData/Git/.

После того, как начался git push working-, хотя я получаю фиктивную ошибку перед моим ответом

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

Ответ 4

Для меня основной причиной получения ошибки было то, что независимо от того, какую версию git я использовал в OSX, GIT всегда собирал конфигурацию credential.helper с использованием osxkeychain из файла:

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

Избавиться от этого решена проблема для меня и ничего не сломала.

Ответ 5

Я решил это.

Сообщение об ошибке 403 является сообщением об ошибке Git. Я добавил две вспомогательные команды AWS:

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

и это позаботилось о проблеме.

Файл.git/config в вашем локальном каталоге (прежде чем клонировать репозиторий Codecommit, который вы только что создали, должен выглядеть так:

[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

Как указано в файле.git/config, вы клонируете с помощью https not ssh. Я не должен был использовать версию git по умолчанию, поставляемую с OSX, потому что я не сталкивался с проблемой Toolchain.

Ответ 6

Мой случай в OSX.

Первый шаг:

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

Однако, проверка git config --list --show-origin

file:/usr/local/etc/gitconfig   credential.https://git-codecommit.eu-west-1.amazonaws.com.helper=!aws codecommit credential-helper [email protected]
file:/usr/local/etc/gitconfig   credential.helper=osxkeychain
file:/Users/mine/.gitconfig  user.name=my-user
file:/Users/mine/.gitconfig  [email protected]
file:/Users/mine/.gitconfig  filter.lfs.clean=git-lfs clean -- %f
file:/Users/mine/.gitconfig  filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/mine/.gitconfig  filter.lfs.process=git-lfs filter-process
file:/Users/mine/.gitconfig  filter.lfs.required=true
file:/Users/mine/.gitconfig  credential.helper=!aws codecommit credential-helper [email protected]
file:/Users/mine/.gitconfig  credential.usehttppath=true

Первая строка отсутствовала, и git использовал osxkeychain с приоритетом. Следовательно, мне пришлось выполнить git config --system...

cat /usr/local/etc/gitconfig                                             
[credential "https://git-codecommit.eu-west-1.amazonaws.com"]
    helper = !aws codecommit credential-helper [email protected]
    UseHttpPath = true
[credential]
    helper = osxkeychain

Таким образом, URL был указан для отказа в случае сохранения других учетных данных.

Обновить https://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting-ch.html

По какой-то причине UseHttpPath = true иногда не добавляется. Поэтому он может (должен) быть добавлен в [credential]

Ответ 7

Неустранимый: невозможно получить доступ к https://git-codecommit.yourregion.amazonaws.com/v1/yourrepositoryname/ ': запрошенный URL-адрес вернул ошибку: 403

Это происходит из-за ниже регионов

  1. Убедитесь, что у вашего пользователя есть политика codecommitfullaccess.
  2. убедитесь, что ваш регион по умолчанию в локальной конфигурации aws cli и регион, в котором создан репозиторий, совпадают. Если нет, сбросьте регион по умолчанию в команде aws cli, как показано ниже

AWS настроить

  1. убедитесь, что хранилище присутствует.

Ответ 8

Следующее решение сработало для нескольких разработчиков, использующих Git Bash в Windows 10.

Если вы выберете Windows в качестве операционной системы на вкладке " Подключение к своему хранилищу ", команды будут отформатированы следующим образом:

git config --global credential.helper "!aws codecommit credential-helper [email protected]"
git config --global credential.UseHttpPath true

Однако, если вы используете Git Bash, выберите вариант "Linux, MacOS или Unix". Обратите внимание на одинарную кавычку вместо двойной кавычки в первой строке.

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

Удачи.

Ссылка: https://forums.aws.amazon.com/thread.jspa?threadID=198356 Автор: mwhardesty

Ответ 9

После выполнения приведенных ниже команд мне пришлось добавить указанную ниже политику к своему пользователю IAM, чтобы решить эту проблему. refrence

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

Политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:*"
            ],
            "Resource": "*"
        }
    ]
}