无法使用 SSH 访问 AWS CodeCommit
Can't access AWS CodeCommit with SSH
在弄清楚如何让 AWS CodeCommit 与标准 SSH 身份验证一起工作时遇到了难以置信的困难。看到另一个类似的话题,但没有答案,我还不能发表评论。这是在 Windows 使用 Git Bash.
重现步骤
- 已创建具有完全权限的 IAM 用户 (AwsAdministrator)
- 来自 Git Bash 在 ~/.ssh
- "cat id_rsa.pub" 并将输出复制到剪贴板
- 在 IAM 控制台中,单击按钮添加 SSH 密钥并粘贴到输入字段中。单击保存。
- 尝试访问 CodeCommit 存储库(在本例中尝试推送)并获取 "Permission denied"。
Git + SSH 输出
这是我使用 DEBUG3 日志从 SSH 获得的结果:
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.
为了比较,这是我使用与 GitHub:
完全相同的 SSH 密钥得到的结果
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
您似乎错过了设置 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 控制台获取 Your-SSH-Key-ID。
我的情况有点不同。
"Security credentials" 选项卡同时包含 "Access keys" 和 "SSH keys for AWS CodeCommit"。确保您使用的是 CodeCommit 密钥 ID。
确保配置文件未另存为 txt 文件并使用 SSH 密钥 ID,而不是访问
有效
Host git-codecommit.us-west-2.amazonaws.com
User SSHKEYID
IdentityFile ~/.ssh/id_rsa
请遵循 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 连接,请按照上述 link;
测试 Linux 的 SSH 连接
以下是为 Windows 10 上的代码提交设置 SSH 连接的步骤。
步骤 1
CodeCommit 初始配置(请参考文档link)
步骤 2
安装Git(请参考文档link)
步骤 3
通过运行以下命令生成ssh密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
在 运行 这个命令之后,它应该在 C:\Users{用户名}.ssh 目录public 中生成 public 密钥(.pub)和私钥
步骤 4
登录aws管理控制台,进入
IAM-->用户--> Select目标用户-->安全凭证选项卡-->AWS CodeCommit 的 SSH 密钥
然后单击上传 ssh 密钥。复制粘贴 public 密钥的内容,例如 C:\Users{此处的用户名}.ssh\id_rsa.pub 并保存 changes.But 您可以为公钥选择不同的名称(id_rsa.pub) 同时使用命令 ssh-keygen -t rsa -b 4096 -C "your_email@example.com".
第 5 步:
上传 public 密钥后,复制 SSH 密钥 ID。
步骤 6
创建 C:\Users{用户名}.ssh\config 文件(没有文件扩展名,在 windows 中将其保存为配置和 select 所有文件类型选项。 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
步骤 7
git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
制作时尝试使用ssh key-ID git clone
到 git 克隆应该如下所示:
git clone ssh://<SSHKEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<REPO-NAME>
AWS 核心配置的变化各不相同。您可能获得了所有正确的配置,但仍然存在连接问题。要直接和明确。
尝试将默认的 git url 来源从旧的更改为 @git-codecomitxxxxxxxx/v1/repos/xxxxx 确保密钥服务作为存储库的用户所有者
再按一次。
在弄清楚如何让 AWS CodeCommit 与标准 SSH 身份验证一起工作时遇到了难以置信的困难。看到另一个类似的话题,但没有答案,我还不能发表评论。这是在 Windows 使用 Git Bash.
重现步骤
- 已创建具有完全权限的 IAM 用户 (AwsAdministrator)
- 来自 Git Bash 在 ~/.ssh
- "cat id_rsa.pub" 并将输出复制到剪贴板
- 在 IAM 控制台中,单击按钮添加 SSH 密钥并粘贴到输入字段中。单击保存。
- 尝试访问 CodeCommit 存储库(在本例中尝试推送)并获取 "Permission denied"。
Git + SSH 输出
这是我使用 DEBUG3 日志从 SSH 获得的结果:
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.
为了比较,这是我使用与 GitHub:
完全相同的 SSH 密钥得到的结果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
您似乎错过了设置 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 控制台获取 Your-SSH-Key-ID。
我的情况有点不同。
"Security credentials" 选项卡同时包含 "Access keys" 和 "SSH keys for AWS CodeCommit"。确保您使用的是 CodeCommit 密钥 ID。
确保配置文件未另存为 txt 文件并使用 SSH 密钥 ID,而不是访问
Host git-codecommit.us-west-2.amazonaws.com
User SSHKEYID
IdentityFile ~/.ssh/id_rsa
请遵循 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 连接,请按照上述 link;
测试 Linux 的 SSH 连接以下是为 Windows 10 上的代码提交设置 SSH 连接的步骤。
步骤 1
CodeCommit 初始配置(请参考文档link)
步骤 2
安装Git(请参考文档link)
步骤 3
通过运行以下命令生成ssh密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
在 运行 这个命令之后,它应该在 C:\Users{用户名}.ssh 目录public 中生成 public 密钥(.pub)和私钥
步骤 4
登录aws管理控制台,进入
IAM-->用户--> Select目标用户-->安全凭证选项卡-->AWS CodeCommit 的 SSH 密钥
然后单击上传 ssh 密钥。复制粘贴 public 密钥的内容,例如 C:\Users{此处的用户名}.ssh\id_rsa.pub 并保存 changes.But 您可以为公钥选择不同的名称(id_rsa.pub) 同时使用命令 ssh-keygen -t rsa -b 4096 -C "your_email@example.com".
第 5 步:
上传 public 密钥后,复制 SSH 密钥 ID。
步骤 6
创建 C:\Users{用户名}.ssh\config 文件(没有文件扩展名,在 windows 中将其保存为配置和 select 所有文件类型选项。 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
步骤 7
git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
制作时尝试使用ssh key-ID git clone
到 git 克隆应该如下所示:
git clone ssh://<SSHKEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<REPO-NAME>
AWS 核心配置的变化各不相同。您可能获得了所有正确的配置,但仍然存在连接问题。要直接和明确。
尝试将默认的 git url 来源从旧的更改为
再按一次。