我能够从我的AWS CodeCommit存储库中拉和/或推送更新,直到我重新安装aws-cli
。我试了所有我能找到的解决办法,但似乎都不管用。
我正在使用Ubuntu 21.10并安装:
$ aws --v
aws-cli/1.19.1 Python/3.9.7 Linux/5.13.0-41-generic botocore/1.20.0
git version 2.32.0
fatal: unable to access 'https://git-codecommit.eu-west-2.amazonaws.com/v1/repos/myrepo/': The requested URL returned error: 403
它以前会问我的用户名和密码,但在我尝试解决这个问题后,它完全停止了问我的凭据。不管怎样,我都确认了我使用的凭证是正确的。而且,我在AWS也有必要的权限。直到几个小时前,我才成功地拉出和推送更新。
根据大多数在线解决方案的建议设置aws凭据帮助程序。更具体地说,我的.gitconfig
文件看起来像这样:
[user]
name = My_name
email = My_email
[credential]
helper = !aws codecommit credential-helper $@
UseHttpPath = true
此外,我正确地设置了$ aws configure
配置(使用正确的区域)。
$ git config --list --show-origin
我得到:
file:/etc/gitconfig user.email=My_email
file:/home/f_user/.gitconfig user.name=My_name
file:/home/f_user/.gitconfig user.email=My_email
file:/home/f_user/.gitconfig credential.helper=!aws codecommit credential-helper $@
file:/home/f_user/.gitconfig credential.usehttppath=true
老实说,我不知道还有什么可以尝试的,任何帮助都会很感激!
编辑:我解决这个问题的方法是:
- 从我的系统中卸载aws客户端,并重新安装和配置。
- 我克隆了我的IAM帐户并给了它完整的AWSCodeCommit访问权限。
我不确定是什么部分解决了它,可能是第一步。
如果你使用Mac去keychain访问,查找codecommit并删除存储的密钥。
只需删除凭据如下,下次弹出窗口提示凭据删除凭据管理器的步骤
控制面板选择"凭证管理"在Generic Credential下,删除相应的Git Credential。
如果你是mac用户。只要输入code ~/.gitconfig
,然后粘贴以下内容,如果缺少凭据部分。
[credential]
helper = !aws codecommit credential-helper $@
UseHttpPath = true
再次检查您的AWS管理的CodeCommit策略。
如果您的IAM User已经切换到ForceMultiFactorAuthentication
作为策略,您将需要使用令牌,而不是您的密码。
在本地,检查凭据管理器存储的密码:
printf "protocol=httpsnhost=git-codecommit.eu-west-2.amazonaws.com"|aws codecommit credential-helper get
我解决这个问题的方法是:
Uninstalled aws client from my system and re installed and configured it from scratch.
I cloned my IAM account and gave it Full AWSCodeCommit access.
我不确定是什么部分解决了这个问题,可能是第一步,因为我重新安装了所有东西后,我再次提示使用我的凭据。
我的解决方案是重新安装git并取消选择git凭证帮助器。
我也面临着类似的问题,
fatal: unable to access 'https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/sunday-demo/':
The requested URL returned error: 403
解决方案:
发出以下两个命令,这样它将提升凭据窗口。
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
按照"Git for macOS"一节中的步骤操作:我成功配置了凭证帮助器,但是现在我被拒绝访问存储库(403)">
https://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting-ch.html
对于windows,如果问题仍然存在"致命:无法访问'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/RepositoryName':请求的URL返回错误:403"尝试修复窗口中的环境变量。如果为了克隆仓库而更改了凭据,则环境将使用旧的区域和键值集。
- 搜索"编辑系统环境变量">
- 查找"环境变量">
- 设置新的accesskey,秘密accesskey和默认区域
- 单击"ok">
我已经为这个问题纠结了好几个月了。今天我发现这是我的设置。
:
在VS Code中运行开发容器在Windows机器上,Docker与WSL集成。我遵循了所有AWS代码提交设置命令,当然还有这些:
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
但是git克隆任何一个repo仍然导致:The requested URL returned error: 403
如果你使用VS Code开发容器,有两个地方存储一些gitconfig:
/etc/gitconfig
/home/node/.gitconfig
(setup是一个nodejs的开发容器)(见最后一行)
如果你运行:
git config --list --show-origin
请注意以下几行:
file:/etc/gitconfig credential.helper=credential.helper=!aws codecommit credential-helper $@
file:/home/node/.gitconfig credential.helper=!aws codecommit credential-helper $@
在我的例子中,=
之后的内容是不同的。修复方法是手动编辑/etc/gitconfig
并给helper
键一个正确的值。