запуск git clone против AWS CodeCommits вызывает ошибку 403
Мой локальный ноутбук - Mac.
-
Ключ 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 через консоль управления.
-
Я запустил конфигурацию aws --profile bruce666, указал его доступ и секретный ключ, его регион и указал формат в json. К этому моменту я смог создать репо Rekha в CodeCommmit, запустив aws codecommit get-repository --repository-name rekha --profile bruce666
-
Я могу создать пару фиктивных файлов, запустить git init, git add. , git commit -m "1", git add origin https://git-gitcode.amzonaws.com/repos/v1/rekha, git push -u origin master И эта операция будет успешной.
-
Однако, когда я запускаю 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, если вышеупомянутые трюки не работают, сделайте следующее:
- Открытый доступ к связке ключей
- Поиск CodeCommit. Вы должны найти это:
- Выберите "git-codecommit...." и нажмите "удалить"
- .Подтвердите удаление.
Теперь попробуйте еще раз. Он должен работать. Возможно, вам придется сделать это снова в следующий раз, когда вы столкнетесь с ошибкой 403.
Одной из возможных причин этой проблемы является пароль цепочки для ключей, отличный от пароля для входа на ваш MAC.
Ответ 2
Я также сталкиваюсь с той же ошибкой 403 при использовании команды git push в Windows. Я выполнил все настройки, упомянутые в документации AWS, но не решил мою проблему. После того, как я рассмотрел набор учетных данных git через учетные данные Windows, как показано на экране. Я нашел вместо учетных данных git https, он установил ключ доступа/секретный ключ (не знаю, как).
Нажмите на ссылку "Изменить", обновите учетные данные с помощью соответствующих учетных данных 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
Это происходит из-за ниже регионов
- Убедитесь, что у вашего пользователя есть политика
codecommitfullaccess
. - убедитесь, что ваш регион по умолчанию в локальной конфигурации aws cli и регион, в котором создан репозиторий, совпадают. Если нет, сбросьте регион по умолчанию в команде aws cli, как показано ниже
AWS настроить
- убедитесь, что хранилище присутствует.
Ответ 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": "*"
}
]
}