我遇到了一种奇怪的部署情况,其中涉及在cloudformation下进行代码提交。
AWS CodeCommit允许我在两个单独的AWS账户的相同区域中创建相同的存储库名称。两个存储库都被赋予SSH相同的端点(ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/ [reponame])
我还能够向两个IAM帐户添加相同的SSH密钥,以授予对这两个同名存储库的访问权限。
除了删除重复项并使用唯一的名称重新创建之外,如何通过git来区分要推送到或从哪个存储库?
答案 0 :(得分:0)
我终于在这里问了之后不久就开始工作了。我要做的是为每个AWS账户设置不同的公共密钥,并将唯一密钥附加到单独的AWS IAM用户。然后,我可以如下更新我的.ssh配置文件:
Host codecommit-acct1
Hostname git-codecommit.us-west-2.amazonaws.com
User [ssh_key_id_1]
IdentityFile ~/.ssh/[ssh_private_key_1]
Host codecommit-acct2
Hostname git-codecommit.us-west-2.amazonaws.com
User [ssh_key_id_2]
IdentityFile ~/.ssh/[ssh_private_key_2]
我的Git存储库配置文件能够使用'codecommit-acct1'作为主机名,并进行了调整以使用唯一的SSH密钥,从而为AWS提供了足够的信息来标识要使用哪个IAM帐户进行身份验证。
[remote "origin1"]
url = ssh://codecommit-acct1/v1/repos/[repo_name]
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "origin2"]
url = ssh://codecommit-acct2/v1/repos/[repo_name]
fetch = +refs/heads/*:refs/remotes/origin/*
我在以下https://forums.aws.amazon.com/thread.jspa?threadID=228206的AWS论坛中找到了解决方案