使用SSH连接AWS CodeCommit出现no matching host key type found报错
报错根因
你本地安装的8.8及以上版本OpenSSH默认禁用了基于SHA-1的ssh-rsa主机密钥算法,而AWS CodeCommit的SSH服务端当前仅支持ssh-rsa作为主机密钥交换算法,二者算法不匹配导致协商失败。
解决方案
方案1:单次连接临时生效
执行测试命令时额外添加算法允许参数即可,替换对应密钥和区域后运行以下命令:ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa MY-SSH-KEY@git-codecommit.us-east-2.amazonaws.com
方案2:永久生效(推荐)
无需每次输入额外参数,一次配置后所有CodeCommit SSH连接自动适配:
- 打开Windows用户目录下的
.ssh文件夹,默认路径为C:\Users\你的系统用户名\.ssh - 找到该目录下的
config文件,如不存在则新建一个无后缀的纯文本文件,命名为config(注意不要添加.txt后缀,否则SSH无法识别) - 在文件末尾追加以下配置,将
MY-SSH-KEY替换为你自己的AWS SSH密钥ID:
Host git-codecommit.*.amazonaws.com HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa User MY-SSH-KEY
- 保存配置后直接执行测试命令即可:
ssh git-codecommit.us-east-2.amazonaws.com
成功验证标识
连接正常时会返回如下提示,代表SSH配置已生效,可以正常使用CodeCommit的SSH服务:
You have successfully authenticated over SSH. You can use Git to interact with CodeCommit.
内容的提问来源于stack exchange,提问作者Austin Grant
相关产品推荐
相关产品推荐

