有一个令人难以置信的困难时间弄清楚如何让AWS CodeCommit工作与标准的SSH身份验证。看到另一个类似的主题,但没有答案,我还不允许评论。这是在Windows上使用Git Bash。
再现步骤
1.已创建具有完全权限的IAM用户(AwsAdministrator)
1.来自~/.ssh中的Git Bash
1.“cat id_rsa.pub”并将输出复制到剪贴板
1.在IAM控制台中,单击按钮添加SSH密钥并粘贴到输入字段中。单击保存。
1.尝试访问CodeCommit存储库(在本例中尝试推送)并得到“Permission denied”。
Git + SSH输出
这是我从SSH得到的DEBUG 3日志记录:
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/Dan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:<omitted>
debug3: sign_and_send_pubkey: RSA SHA256:<same-as-above>
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
fatal: Could not read from remote repository.
为了比较,这是我使用完全相同的SSH密钥到GitHub得到的:
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/Dan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:<same-as-above>
debug3: sign_and_send_pubkey: RSA SHA256:<same-as-above>
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([192.30.252.130]:22).
上面的输出来自于运行一个普通的git命令,例如git push origin master
,并且在.ssh/config
中启用了ssh调试日志记录:
Host git-codecommit.us-east-1.amazonaws.com
LogLevel DEBUG3
Host github.com
LogLevel DEBUG3
8条答案
按热度按时间jljoyd4f1#
您似乎遗漏了设置SSH的步骤。您需要将此信息添加到.ssh/config文件中:
您可以从IAM控制台获取您的SSH密钥ID。
hi3rlvi22#
我的情况有点不同。
“安全凭据”选项卡同时包含“访问密钥”和“AWS CodeCommit的SSH密钥”。请确保您使用的是CodeCommit密钥ID。
drnojrws3#
这起作用了
xpszyzbs4#
请遵循AWS提供的以下文档
Linux
Windows
https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html
我已经测试了只为windows设置SSH连接,请按照上面提到的链接测试Linux的SSH连接;
以下是在Windows 10上为codecommit设置SSH连接的步骤。
步骤1
CodeCommit的初始配置(请参考文档链接)
第二步
安装Git(请参考文档链接)
第三步
通过运行以下命令生成ssh密钥:
运行此命令后,应在C:\Users{此处为用户名}.ssh目录中生成公钥(.pub)和私钥
步骤4
登录到AWS管理控制台,然后转到IAM--〉用户--〉选择目标用户--〉安全凭据选项卡--〉AWS CodeCommit的SSH密钥,然后单击上载ssh密钥。复制粘贴公钥的内容,例如C:\Users{此处为用户名}.ssh\id_rsa.pub,然后保存更改。但是,您可以在使用命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com".
时为公钥(id_rsa.pub)选择其他名称步骤5:
上传公钥后,复制SSH密钥ID。
第六步
创建C:\Users{此处为用户名}.ssh\config文件(没有文件扩展名,在windows中保存为config并选择所有文件类型选项。Config.txt很可能不起作用)。将以下内容粘贴到C:\Users{此处为用户名}.ssh\config文件中:
第七步
sigwle7e5#
创建
git clone
x1c 0d1x时尝试使用sshkey-ID所以git clone应该看起来像这样:
rm5edbpk6#
确保配置文件未另存为txt文件,并使用SSH密钥ID,而不是Access
s6fujrry7#
AWS核心配置的变化各不相同。你可能会得到所有正确的配置,但仍然有连接问题。要直接和明确。
尝试将默认的git url源从旧的更改为<KEY_ID>@git-codecomitxxxxxxxx/v1/repos/xxxxx,确保关键服务是仓库的用户所有者
再用力。
rsaldnfx8#
在我的示例中,我将
~/.ssh/config
配置为我试着用下面的命令克隆
并导致权限被拒绝。
但是通过运行以下命令完成了这项工作。