AWS CodeCommit 不再向新客户提供。 AWS CodeCommit 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SSH 与 AWS CodeCommit 的连接问题排查
以下信息可帮助您排查在使用 SSH 连接到 CodeCommit 存储库时的常见问题。
主题
- 访问错误:已将公有密钥成功上传到 IAM,但在 Linux、macOS 或 Unix 系统上进行连接时失败
- 访问错误:已将公有密钥成功上传到 IAM 并且 SSH 测试成功,但在 Windows 系统上进行连接时失败
- 身份验证质询:连接到 CodeCommit 存储库时,无法确认主机的真实性
- IAM 错误:尝试向 IAM 添加公有密钥时,出现“格式无效”错误
- 我需要使用 SSH 凭证访问多个 Amazon Web Services 账户中的 CodeCommit 存储库
- Windows 上的 Git:尝试使用 SSH 进行连接时,Bash 仿真器或命令行卡住
- 公有密钥格式在某些 Linux 发行版中需要规范化
- 访问错误:连接到 CodeCommit 存储库时,SSH 公有密钥被拒绝
访问错误:已将公有密钥成功上传到 IAM,但在 Linux、macOS 或 Unix 系统上进行连接时失败
问题:尝试连接到 SSH 端点以与 CodeCommit 存储库通信时,测试连接或克隆存储库的操作出现连接失败或连接被拒绝。
可能的修复措施:分配给 IAM 中公有密钥的 SSH 密钥 ID 可能未关联到您尝试的连接。您可能尚未配置配置文件、您可能无权访问配置文件、其他设置可能导致系统无法成功读取配置文件、您可能提供了错误的密钥 ID 或者您可能提供了 IAM 用户 ID 而不是密钥 ID。
您可以通过 IAM 控制台在 IAM 用户的配置文件中找到 SSH 密钥 ID:
注意
如果您上传了多个 SSH 密钥 ID,则按密钥 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 或 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 或 Unix 上的 SSH 连接 或适用于 Windows 上的 SSH 连接 中的说明操作。
如果按照上述步骤操作后,问题仍然存在,可能是有人正在尝试实施中间人攻击。如果看到下面的消息,请键入 no
并按 Enter。
Are you sure you want to continue connecting (yes/no)?
确保 CodeCommit 连接的指纹和公有密钥与 SSH 设置主题中记录的指纹和公有密钥匹配,再继续连接。
服务器 | 加密哈希类型 | 指纹 |
---|---|---|
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.ap-southeast-3.amazonaws.com | MD5 | 64:d9:e0:53:19:4f:a8:91:9a:c3:53:22:a6:a8:ed:a6 |
git-codecommit.ap-southeast-3.amazonaws.com | SHA256 | ATdkGSFhpqIu7RqUVT/1RZo6MLxxxUW9NoDVMbAc/6g |
git-codecommit.me-central-1.amazonaws.com | MD5 | bd:fa:e2:f9:05:84:d6:39:6f:bc:d6:8d:fe:de:61:76 |
git-codecommit.me-central-1.amazonaws.com | SHA256 | grceUDWubo4MzG1NoaKZKUfrgPvfN3ijliOnQr1lTZA |
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.ap-south-2.amazonaws.com | MD5 | bc:cc:9f:15:f8:f3:58:a2:68:65:21:e2:23:71:8d:ce |
git-codecommit.ap-south-2.amazonaws.com | SHA256 | Xe0CyZEOvgR5Xa2YUGqf+jn8/Ut7l7nX/CmslSFNEig |
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.rproxy.goskope.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.rproxy.goskope.com.cn | SHA256 | IYUXxH2OpTDsyYMLIp+JY8CTLS4UX+ZC5JVZXPRaxc8 |
git-codecommit---cn-northwest-1.amazonaws.com.rproxy.goskope.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.rproxy.goskope.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 |
git-codecommit.ap-northeast-3.amazonaws.com | MD5 | 25:17:40:da:b9:d4:18:c3:b6:b3:fb:ed:1c:20:fe:29 |
git-codecommit.ap-northeast-3.amazonaws.com | SHA256 | 2B815B9F0AvwLnRxSVxUz4kDYmtEQUGGdQYP8OQLXhA |
git-codecommit.af-south-1.amazonaws.com | MD5 | 21:a0:ba:d7:c1:d1:b5:39:98:8d:4d:7c:96:f5:ca:29 |
git-codecommit.af-south-1.amazonaws.com | SHA256 | C34ji3x/cnsDZjUpyNGXdE5pjHYimqJrQZ3leTgqJHM |
git-codecommit.il-central-1.amazonaws.com | MD5 | 04:74:89:16:98:7a:61:b1:69:46:42:3c:d1:b4:ac:a9 |
git-codecommit.il-central-1.amazonaws.com | SHA256 | uFxhp51kUWhleTLeYbxQVYm4RnNLNZ5Dbdm1cgdSl/8 |
IAM 错误:尝试向 IAM 添加公有密钥时,出现“格式无效”错误
问题:在 IAM 中,设置对 CodeCommit 使用 SSH 连接,在尝试添加公有密钥时,出现一条错误消息,其中包含 Invalid
format
字样。
可能的修复措施:IAM 要求公有密钥必须采用 ssh-rsa 格式或 PEM 格式进行编码。它仅接受 OpenSSH 格式的公有密钥,并且具有《IAM 用户指南》中的将 SSH 密钥与 CodeCommit 配合使用所述的其他要求。如果提供其他格式的公有密钥,或者密钥包含的位数不够,就会出现此错误。
-
当您复制 SSH 公钥时,您的操作系统可能引入了换行符。确保添加到 IAM 的公有密钥中没有换行符。
-
某些 Windows 操作系统不使用 OpenSSH 格式。要生成密钥对并复制 IAM 要求的 OpenSSH 格式,请参阅步骤 3:为 Git 和 CodeCommit 设置公有密钥和私有密钥。
有关 IAM 中的 SSH 密钥要求的更多信息,请参阅《IAM 用户指南》中的将 SSH 密钥与 CodeCommit 配合使用。
我需要使用 SSH 凭证访问多个 Amazon Web Services 账户中的 CodeCommit 存储库
问题:我想在多个 Amazon Web Services 账户中设置对 CodeCommit 存储库的 SSH 访问权限。
可能的修复措施:您可以为每个 Amazon Web Services 账户创建唯一的 SSH 公有/私有密钥对,并使用每个密钥配置 IAM。然后,您可以使用与公有密钥关联的每个 IAM 用户 ID 的相关信息来配置您的 ~/.ssh/config 文件。例如:
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 Amazon Web Services 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 UserSSH-KEY-ID-2
# This is the SSH Key ID you copied from IAM in Amazon Web Services 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”。例如,要克隆第二个 Amazon Web Services 账户中的存储库,请运行以下命令:
git clone ssh://codecommit-2/v1/repos/
YourRepositoryName
要为存储库设置远程操作,请运行 git remote add。例如:
git remote add origin ssh://codecommit-2/v1/repos/
YourRepositoryName
有关更多示例,请参阅这篇论坛帖子
Windows 上的 Git:尝试使用 SSH 进行连接时,Bash 仿真器或命令行卡住
问题:为 Windows 配置 SSH 访问并在命令行或终端中确认连接后,当尝试在命令提示符或 Bash 仿真器中 git pull、git push 或 git clone 命令时,显示一条消息,指示服务器的主机密钥未缓存在注册表中,并且有关在缓存中存储密钥的提示卡住(不接受 y/n/return 输入)。
可能的修复措施:导致该错误的最常见原因是 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 安全提醒的提示时,选择 Yes (是) 永久缓存密钥。
-
重命名或删除不再使用的
GIT_SSH
环境变量。然后,打开新的命令提示符或 Bash 仿真器会话,再次尝试您的命令。
有关其他解决方案的信息,请参阅 Stack Overflow 上的 Git clone/pull continually freezing at Store key in cache
公有密钥格式在某些 Linux 发行版中需要规范化
问题:尝试配置公有-私有密钥对时,收到一个错误。
可能的修复措施:某些 Linux 发行版需要在 ~/.ssh/config
文件中添加额外的配置行,以指定公有密钥的可接受类型。有关更多信息,请参阅有关 PubkeyAcceptedKeyTypes
的具体发行版文档。
访问错误:连接到 CodeCommit 存储库时,SSH 公有密钥被拒绝
问题:尝试使用 SSH 端点与 CodeCommit 存储库通信时,出现一条错误消息,其中包含 Error: public key denied
字样。
可能的修复措施:导致出现此错误的最常见原因是您尚未完成 SSH 连接设置。请配置公有和私有 SSH 密钥对,然后将公有密钥与您的 IAM 用户相关联。有关配置 SSH 的更多信息,请参阅适用于 Linux、macOS 或 Unix 上的 SSH 连接 和适用于 Windows 上的 SSH 连接。