通过HTTP克隆AWS CodeCommit仓库

7

我在AWS CodeCommit中设置了2个代码仓库,并且之前使用Windows的SourceTree,通过HTTP协议设置访问权限一切正常。

现在我正在将一个项目的开发迁移到另一台安装了Ubuntu并选择使用GitKraken的机器上。

我能够通过终端在具有读写权限(我的用户)的文件夹中git clone,因此这不是Ubuntu中的权限问题,在git clone“aws repo url”之后,会提示我输入IAM用户名和密码(在AWS IAM控制台创建的密码)。

当然,我可以从GitKraken打开那个仓库文件夹,甚至看到所有远程分支和所有历史记录,但是一旦我从GitKraken尝试拉取,它就会因为“拒绝访问”而失败。我也无法从GitKraken克隆相同或另一个仓库。因此,似乎我必须在GitKraken中配置我的凭据,但不确定应该在哪里进行配置。 官方文档没有提供详细解释。

3个回答

23

实际上我发现我能够连接,之前失败是因为没有遵循AWS Codecommit文档中的一些步骤:

我不确定在提示框中提供以下内容是否是必要的步骤,但我想它们不会有任何问题:

在终端提供以下内容:

aws configure

您将被要求提供:

AWS访问密钥ID

AWS秘密访问密钥

默认区域名称

默认输出格式

到这里,我建议提供以上内容。

在克隆“您的https AWS地址”时,您需要提供用户名和密码。不幸的是,对于我的根帐户和我的IAM帐户(带有正确的规则策略),我都收到了403错误。

成功的是,无需提供额外的凭据,只需在终端执行以下操作:

git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true 

那么简单地说:

clone https://your_url_code your_repo_name for HTTPS connection from AWS Codecommit console

如需更详细的说明,请参阅官方文档

这对我起作用了。


6
您可以按照此文档设置SSH连接:https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html。设置完成后,使用Gitkraken打开代码库。尝试拉取或推送时,Gitkraken会要求您提供凭据。请使用在上一步骤创建的SSH凭据。
如果Gitkraken再次失败,请检查存储库本地副本中的.git/config文件。我注意到生成的URL不正确,请检查生成的URL是否与以下模式匹配:
[remote "origin"]
url = ssh://<Your-SSH-Key-ID>@git-codecommit.<region>.amazonaws.com/v1/repos/<repo-name>
fetch = +refs/heads/*:refs/remotes/origin/*

我会尝试使用ssh,我一直在考虑这个。现在我已经准备好并设置好了我的IDE。 - Carmine Tambascia
1
@EgidioCaprino 我通过HTTP协议进行了请求。 - Carmine Tambascia

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接