git 无法通过SSH访问AWS CodeCommit

jgwigjjp  于 2022-12-17  发布在  Git
关注(0)|答案(8)|浏览(216)

有一个令人难以置信的困难时间弄清楚如何让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
jljoyd4f

jljoyd4f1#

您似乎遗漏了设置SSH的步骤。您需要将此信息添加到.ssh/config文件中:

Host git-codecommit.us-east-1.amazonaws.com
   User Your-SSH-Key-ID, such as APKAEIBAERJR2EXAMPLE
   IdentityFile Your-Private-Key-File, such as ~/.ssh/codecommit_rsa or ~/.ssh/id_rsa

您可以从IAM控制台获取您的SSH密钥ID。

hi3rlvi2

hi3rlvi22#

我的情况有点不同。
“安全凭据”选项卡同时包含“访问密钥”和“AWS CodeCommit的SSH密钥”。请确保您使用的是CodeCommit密钥ID。

drnojrws

drnojrws3#


这起作用了

Host git-codecommit.us-west-2.amazonaws.com
    User SSHKEYID
    IdentityFile ~/.ssh/id_rsa
xpszyzbs

xpszyzbs4#

请遵循AWS提供的以下文档

Linux

https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html

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密钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

运行此命令后,应在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文件中:

Host git-codecommit.*.amazonaws.com
  User {copy SSH key ID here}
  IdentityFile ~/.ssh/{copy name of the public key here }
  
Host git-codecommit.*.amazonaws.com
  User THISISEXMAPLE123
  IdentityFile ~/.ssh/id_rsa

第七步

git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
sigwle7e

sigwle7e5#

创建git clone x1c 0d1x时尝试使用sshkey-ID
所以git clone应该看起来像这样:

git clone ssh://<SSHKEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<REPO-NAME>
rm5edbpk

rm5edbpk6#

确保配置文件未另存为txt文件,并使用SSH密钥ID,而不是Access

s6fujrry

s6fujrry7#

AWS核心配置的变化各不相同。你可能会得到所有正确的配置,但仍然有连接问题。要直接和明确。

尝试将默认的git url源从旧的更改为<KEY_ID>@git-codecomitxxxxxxxx/v1/repos/xxxxx,确保关键服务是仓库的用户所有者
再用力。

rsaldnfx

rsaldnfx8#

在我的示例中,我将~/.ssh/config配置为

Host remote
  HostName  git-codecommit.us-east-1.amazonaws.com
  User APLAY5AJ2VA0XEXAMPLE
  IdentityFile ~/.ssh/id_rsa

我试着用下面的命令克隆

git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/repo-name

并导致权限被拒绝。
但是通过运行以下命令完成了这项工作。

git clone ssh://remote/v1/repos/repo-name

相关问题