Windows11配置AWS CodeCommit SSH后git clone密钥协商失败如何解决
问题根因
你遇到的报错核心原因是Git Bash内置的OpenSSH版本较高,默认禁用了基于SHA-1哈希的ssh-rsa算法,但AWS CodeCommit目前仅支持ssh-rsa作为主机密钥协商算法;且PowerShell使用的系统内置OpenSSH配置和Git Bash的SSH配置相互独立,你在PowerShell侧的配置未同步到Git Bash环境。
排查解决步骤
- 方案1:统一Git使用的SSH客户端为系统已验证的版本
直接让Git调用你已经测试通过的系统自带OpenSSH,无需修改额外算法配置,在Git Bash中执行以下命令即可:
配置完成后直接重试git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"git clone操作即可。 - 方案2:修改Git Bash的SSH配置适配ssh-rsa算法
- 打开Git Bash,执行
cd ~/.ssh进入SSH配置目录 - 编辑config文件,在对应CodeCommit的Host配置段新增2行算法配置,最终配置如下:
Host git-codecommit.*.amazonaws.com User 你的AWS SSH密钥ID IdentityFile ~/.ssh/codecommit_rsa HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa注意将配置中的
你的AWS SSH密钥ID替换为你在AWS IAM控制台上传codecommit_rsa.pub后生成的SSH密钥ID(格式通常为APKA开头的字符串)。- 在Git Bash中重新执行连接验证命令,确认认证成功:
ssh git-codecommit.us-west-2.amazonaws.com- 验证通过后重试
git clone操作即可。
- 打开Git Bash,执行
- 可选排查项
执行git config --list --global检查是否有其他SSH相关的全局配置冲突,确认无误后再重试操作。
内容的提问来源于stack exchange,提问作者neyone315
相关产品推荐
相关产品推荐

