对SSH连接进行故障排除 AWS CodeCommit - AWS CodeCommit

对SSH连接进行故障排除 AWS CodeCommit

以下信息可帮助您排查在使用 SSH 连接到 CodeCommit 存储库时的常见问题。

访问错误: 公钥已成功上传到 IAM 但连接失败 Linux, macOS, or Unix 系统

问题: 当您尝试连接到SSH端点以与 CodeCommit 存储库,在测试连接或克隆存储库时,连接失败或拒绝。

可能的修复措施: 分配给您的公钥的SSH密钥ID IAM 可能与您的连接尝试无关。您可能尚未配置配置文件、您可能无权访问配置文件、其他设置可能导致系统无法成功读取配置文件、您可能提供了错误的密钥 ID 或者您提供了 IAM 用户 ID 而不是密钥 ID。

您可以通过 IAM 控制台在您的 IAM 用户的配置文件中找到 SSH 密钥 ID:


                中的SSH键ID IAM 控制台
注意

如果您有多个SSH密钥 IDs 已上传,密钥按密钥ID的字母顺序列出,而不是按上传日期列出。请确保已复制与正确上传日期关联的密钥 ID。

尝试使用下面的命令测试连接:

ssh Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com

如果在确认连接后看到成功消息,说明您的 SSH 密钥 ID 是有效的。编辑配置文件,将您的连接关联到 IAM 中的公有密钥。如果您不想编辑配置文件,可以在所有存储库连接前面加上 SSH 密钥 ID。例如,如果要复制名为 MyDemoRepo 在不修改配置文件以关联连接尝试的情况下,您将运行以下命令:

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

有关更多信息,请参阅对于 Linux, macOS, or Unix 上的 SSH 连接

访问错误: 公钥已成功上传到 IAM 和SSH测试成功,但Windows系统上的连接失败

问题: 当您尝试使用SSH端点克隆或与 CodeCommit 存储库,将显示一条错误消息,其中包含该短语 No supported authentication methods available.

可能的修复措施: 此错误的最常见原因是您有一个Windows系统环境变量集,该变量集将指导Windows在尝试使用SSH时使用其他程序。例如,您可能已将GIT_SSH变量设置为指向 PuTTY 工具集(plink.exe)。这可能是一个旧式配置,或计算机上安装的一个或多个其他程序需要该配置。如果确定不需要该环境变量,可以打开系统属性来将其删除。

要解决这个问题,请打开 Bash 仿真器,再次尝试 SSH 连接,但包含 GIT_SSH_COMMAND="SSH" 作为前缀。例如,要使用 SSH 克隆存储库:

GIT_SSH_COMMAND="ssh" git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

如果您的 Windows 版本要求在 Windows 命令行中通过 SSH 进行连接时必须将 SSH 密钥 ID 包含在连接字符串中,也可能会出现类似问题。尝试再次连接,这次请在命令中包含从 IAM 复制的 SSH 密钥 ID。例如:

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

验证质询: 当连接到 CodeCommit 存储库

问题: 当您尝试使用SSH端点与 CodeCommit 存储库,将显示一条警告消息,其中包含该短语 The authenticity of host 'host-name' can't be established.

可能的修复措施: 您的凭证可能未正确设置。按照对于 Linux, macOS, or Unix 上的 SSH 连接适用于 Windows 上的 SSH 连接 中的说明操作。

如果按照上述步骤操作后,问题仍然存在,可能是有人正在尝试实施中间人攻击。如果看到下面的消息,请键入 no 并按 Enter。

Are you sure you want to continue connecting (yes/no)?

确认 CodeCommit 连接的指纹和公有密钥与 SSH 设置主题中记录的指纹和公有密钥匹配,再继续连接。

CodeCommit 的公有指纹
服务器 加密哈希类型 指纹
git-codecommit.us-east-2.amazonaws.com MD5 a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e
git-codecommit.us-east-2.amazonaws.com SHA256 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ
git-codecommit.us-east-1.amazonaws.com MD5 a6:9c:7d:bc:35:f5:d4:5f:8b:ba:6f:c8:bc:d4:83:84
git-codecommit.us-east-1.amazonaws.com SHA256 eLMY1j0DKA4uvDZcl/KgtIayZANwX6t8+8isPtotBoY
git-codecommit.us-west-2.amazonaws.com MD5 a8:68:53:e3:99:ac:6e:d7:04:7e:f7:92:95:77:a9:77
git-codecommit.us-west-2.amazonaws.com SHA256 0pJx9SQpkbPUAHwy58UVIq0IHcyo1fwCpOOuVgcAWPo
git-codecommit.eu-west-1.amazonaws.com MD5 93:42:36:ea:22:1f:f1:0f:20:02:4a:79:ff:ea:12:1d
git-codecommit.eu-west-1.amazonaws.com SHA256 tKjRkOL8dmJyTmSbeSdN1S8F/f0iql3RlvqgTOP1UyQ
git-codecommit.ap-northeast-1.amazonaws.com MD5 8e:a3:f0:80:98:48:1c:5c:6f:59:db:a7:8f:6e:c6:cb
git-codecommit.ap-northeast-1.amazonaws.com SHA256 Xk/WeYD/K/bnBybzhiuu4dWpBJtXPf7E30jHU7se4Ow
git-codecommit.ap-southeast-1.amazonaws.com MD5 65:e5:27:c3:09:68:0d:8e:b7:6d:94:25:80:3e:93:cf
git-codecommit.ap-southeast-1.amazonaws.com SHA256 ZIsVa7OVzxrTIf+Rk4UbhPv6Es22mSB3uTBojfPXIno
git-codecommit.ap-southeast-2.amazonaws.com MD5 7b:d2:c1:24:e6:91:a5:7b:fa:c1:0c:35:95:87:da:a0
git-codecommit.ap-southeast-2.amazonaws.com SHA256 nYp+gHas80HY3DqbP4yanCDFhqDVjseefVbHEXqH2Ec
git-codecommit.eu-central-1.amazonaws.com MD5 74:5a:e8:02:fc:b2:9c:06:10:b4:78:84:65:94:22:2d
git-codecommit.eu-central-1.amazonaws.com SHA256 MwGrkiEki8QkkBtlAgXbYt0hoZYBnZF62VY5RzGJEUY
git-codecommit.ap-northeast-2.amazonaws.com MD5 9f:68:48:9b:5f:fc:96:69:39:45:58:87:95:b3:69:ed
git-codecommit.ap-northeast-2.amazonaws.com SHA256 eegAPQrWY9YsYo9ZHIKOmxetfXBHzAZd8Eya53Qcwko
git-codecommit.sa-east-1.amazonaws.com MD5 74:99:9d:ff:2b:ef:63:c6:4b:b4:6a:7f:62:c5:4b:51
git-codecommit.sa-east-1.amazonaws.com SHA256 kW+VKB0jpRaG/ZbXkgbtMQbKgEDK7JnISV3SVoyCmzU
git-codecommit.us-west-1.amazonaws.com MD5 3b:76:18:83:13:2c:f8:eb:e9:a3:d0:51:10:32:e7:d1
git-codecommit.us-west-1.amazonaws.com SHA256 gzauWTWXDK2u5KuMMi5vbKTmfyerdIwgSbzYBODLpzg
git-codecommit.eu-west-2.amazonaws.com MD5 a5:65:a6:b1:84:02:b1:95:43:f9:0e:de:dd:ed:61:d3
git-codecommit.eu-west-2.amazonaws.com SHA256 r0Rwz5k/IHp/QyrRnfiM9j02D5UEqMbtFNTuDG2hNbs
git-codecommit.ap-south-1.amazonaws.com MD5 da:41:1e:07:3b:9e:76:a0:c5:1e:64:88:03:69:86:21
git-codecommit.ap-south-1.amazonaws.com SHA256 hUKwnTj7+Xpx4Kddb6p45j4RazIJ4IhAMD8k29itOfE
git-codecommit.ca-central-1.amazonaws.com MD5 9f:7c:a2:2f:8c:b5:74:fd:ab:b7:e1:fd:af:46:ed:23
git-codecommit.ca-central-1.amazonaws.com SHA256 Qz5puafQdANVprLlj6r0Qyh4lCNsF6ob61dGcPtFS7w
git-codecommit.eu-west-3.amazonaws.com MD5 1b:7f:97:dd:d7:76:8a:32:2c:bd:2c:7b:33:74:6a:76
git-codecommit.eu-west-3.amazonaws.com SHA256 uw7c2FL564jVoFgtc+ikzILnKBsZz7t9+CFdSJjKbLI
git-codecommit.us-gov-west-1.amazonaws.com MD5 9f:6c:19:3b:88:cd:e8:88:1b:9c:98:6a:95:31:8a:69
git-codecommit.us-gov-west-1.amazonaws.com SHA256 djXQoSIFcg8vHe0KVH1xW/gOF9X37tWTqu4Hkng75x4
git-codecommit.us-gov-east-1.amazonaws.com MD5 00:8d:b5:55:6f:05:78:05:ed:ea:cb:3f:e6:f0:62:f2
git-codecommit.us-gov-east-1.amazonaws.com SHA256 fVb+R0z7qW7minenW+rUpAABRCRBTCzmETAJEQrg98
git-codecommit.eu-north-1.amazonaws.com MD5 8e:53:d8:59:35:88:82:fd:73:4b:60:8a:50:70:38:f4
git-codecommit.eu-north-1.amazonaws.com SHA256 b6KSK7xKq+V8jl7iuAcjqXsG7zkqoUZZmmhYYFBq1wQ
git-codecommit.me-south-1.amazonaws.com MD5 0e:39:28:56:d5:41:e6:8d:fa:81:45:37:fb:f3:cd:f7
git-codecommit.me-south-1.amazonaws.com SHA256 O+NToCGgjrHekiBuOl0ad7ROGEsz+DBLXOd/c9wc0JU
git-codecommit.ap-east-1.amazonaws.com MD5 a8:00:3d:24:52:9d:61:0e:f6:e3:88:c8:96:01:1c:fe
git-codecommit.ap-east-1.amazonaws.com SHA256 LafadYwUYW8hONoTRpojbjNs9IRnbEwHtezD3aAIBX0
git-codecommit.cn-north-1.amazonaws.com.cn MD5 11:7e:2d:74:9e:3b:94:a2:69:14:75:6f:5e:22:3b:b3
git-codecommit.cn-north-1.amazonaws.com.cn SHA256 IYUXxH2OpTDsyYMLIp+JY8CTLS4UX+ZC5JVZXPRaxc8
git-codecommit.cn-northwest-1.amazonaws.com.cn MD5 2e:a7:fb:4c:33:ac:6c:f9:aa:f2:bc:fb:0a:7b:1e:b6
git-codecommit.cn-northwest-1.amazonaws.com.cn SHA256 wqjd6eHd0+mOBx+dCNuL0omUoCNjaDtZiEpWj5TmCfQ
git-codecommit.eu-south-1.amazonaws.com MD5 b9:f6:5d:e2:48:92:3f:a9:37:1e:c4:d0:32:0e:fb:11
git-codecommit.eu-south-1.amazonaws.com SHA256 lyXrWbCg3uQmJrl1XxB/ASR7ugW1Ysf5yzYOJbudHsI

IAM 错误: 当尝试添加公钥到时为“格式无效” IAM

问题: 英寸 IAM,当尝试设置SSH的使用时, CodeCommit,将显示一条错误消息,其中包含该短语 Invalid format 当您尝试添加公钥时。

可能的修复: IAM 接受中的公钥 OpenSSH 仅格式和 有 其他要求如 使用SSH密钥 CodeCommitIAM 用户指南. 如果提供其他格式的公有密钥,或者密钥包含的位数不够,就会出现此错误。

有关SSH密钥要求的更多信息,请参阅 IAM,请参阅 使用SSH密钥 CodeCommitIAM 用户指南.

我需要访问 CodeCommit 多个存储库 AWS 具有SSH凭证的帐户

问题: 我想设置SSH访问 CodeCommit 多个存储库 AWS 帐户。

可能的修复措施: 您可以为每个创建一个唯一的SSH公/私钥对 AWS 帐户和配置 IAM 每个键。然后,您可以使用每个文件的信息配置~/.ssh/config文件 IAM 与公钥相关联的用户ID。例如:

Host codecommit-1 Hostname git-codecommit.us-east-1.amazonaws.com User SSH-KEY-ID-1 # This is the SSH Key ID you copied from IAM in AWS account 1 (for example, APKAEIBAERJR2EXAMPLE1). IdentityFile ~/.ssh/codecommit_rsa # This is the path to the associated public key file, such as id_rsa. We advise creating CodeCommit specific _rsa files. Host codecommit-2 Hostname git-codecommit.us-east-1.amazonaws.com User SSH-KEY-ID-2 # This is the SSH Key ID you copied from IAM in AWS account 2 (for example, APKAEIBAERJR2EXAMPLE2). IdentityFile ~/.ssh/codecommit_2_rsa # This is the path to the other associated public key file. We advise creating CodeCommit specific _rsa files.

在此配置中,您将能够将“git-codecommit.us-east-1.amazonaws.com”替换为“codecommit-2”。例如,在第二个 AWS 账户:

git clone ssh://codecommit-2/v1/repos/YourRepositoryName

要为存储库设置远程,请运行 git remote add。例如:

git remote add origin ssh://codecommit-2/v1/repos/YourRepositoryName

有关更多示例,请参阅 这个论坛帖子的这一贡献 GitHub.

在Windows上切换: 尝试使用SSH连接时,Bash仿真器或命令行会冻结

问题: 在为Windows配置SSH访问并在命令行或终端确认连接后,您会发现一个消息,表明服务器的主机密钥未缓存在注册表中,当您尝试使用诸如以下命令时,缓存中存储密钥的提示会冻结(不接受y/n/返回输入) git pull, git push,或 git clone 命令提示符或Bash仿真器。

可能的修复措施: 造成此错误的最常见原因是您的Git环境被配置为使用除 OpenSSH 用于身份验证(可能 PuTTY)。这会在某些配置中导致与缓存密钥有关的问题。要解决这个问题,请尝试以下操作之一:

  • 打开 Bash 仿真器,在 Git 命令前添加 GIT_SSH_COMMAND="ssh" 参数。例如,在尝试推送到存储库时,不要键入 git push,而是键入:

    GIT_SSH_COMMAND="ssh" git push
  • 如果你有 PuTTY 已安装,打开 PuTTY、和 主机名(或IP地址),输入 CodeCommit 您希望达到的端点(例如, git-codecommit.us-east-2.amazonaws.com)。选择 Open。当出现提示时, PuTTY 安全警报,请选择 永久缓存密钥。

  • 重命名或删除不再使用的 GIT_SSH 环境变量。然后,打开新的命令提示符或 Bash 仿真器会话,再次尝试您的命令。

有关其他解决方案的信息,请参阅 Stack Overflow 上的 Git clone/pull continually freezing at Store key in cache