AWS CodeCommit
用户指南 (API 版本 2015-04-13)

在 Windows 上设置到 AWS CodeCommit 存储库的 SSH 连接的步骤

在首次连接到 AWS CodeCommit 之前,您必须先完成初始配置步骤。本主题将指导您完成所需步骤以设置您的计算机和 AWS 配置文件,连接到 CodeCommit 存储库并将存储库克隆到您的计算机(这也称为创建本地存储库)。如果您刚刚接触 Git,我们建议您查看哪里可以找到有关 Git 的更多信息?中的信息。

步骤 1:CodeCommit 初始配置

按照以下步骤设置 AWS 账户、创建 IAM 用户并配置对 CodeCommit 的访问。

创建和配置用于访问 CodeCommit 的 IAM 用户

  1. 通过转到 http://aws.amazon.com 并选择 Sign Up (注册) 创建一个 AWS 账户。

  2. 创建 IAM 用户或使用您的 AWS 账户中的现有用户。确保您具有与该 IAM 用户关联的访问密钥 ID 和私有访问密钥。有关更多信息,请参阅在您的 AWS 账户中创建 IAM 用户

    注意

    CodeCommit 需要使用 AWS Key Management Service。如果使用现有的 IAM 用户,请确保未向该用户附加明确拒绝 CodeCommit 要求的 AWS KMS 操作的任何策略。有关更多信息,请参阅AWS KMS 和加密

  3. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/

  4. 在 IAM 控制台的导航窗格中,选择 Users (用户),然后选择要配置进行 CodeCommit 访问的 IAM 用户。

  5. Permissions 选项卡上,选择 Add Permissions

  6. Grant permissions (授予权限) 中,选择 Attach existing policies directly (直接附加现有策略)

  7. 从策略列表中选择 AWSCodeCommitFullAccess 或用于 CodeCommit 访问的其他托管策略。有关更多信息,请参阅 适用于 CodeCommit 的 AWS 托管(预定义)策略

    选择要附加的策略后,选择 Next: Review (下一步: 审核) 以审核将附加到 IAM 用户的策略的列表。如果列表正确,选择 Add permissions

    有关 CodeCommit 管理的策略以及与其他组和用户共享访问存储库的更多信息,请参阅共享存储库AWS CodeCommit 的身份验证和访问控制

注意

如果您想使用 AWS CLI 命令操作 CodeCommit,请安装 AWS CLI。有关更多信息,请参阅命令行参考

步骤 2:安装 Git

要使用 CodeCommit 存储库中的文件、提交和其他信息,您必须在自己的本地计算机上安装 Git。CodeCommit 支持 Git 1.7.9 以及更高版本。

要安装 Git,建议您访问 Git 下载等网站。

注意

Git 是一个不断发展、定期更新的平台。有时,功能上的更改可能会影响到它与 CodeCommit 协作的方式。如果遇到 Git 和 CodeCommit 特定版本的问题,请参阅问题排查中的信息。

如果您安装的 Git 版本不包含 Bash 仿真器(例如 Git Bash),请安装一个。配置 SSH 连接时,您将使用该仿真器而不是 Windows 命令行。

SSH 和 Windows:为 Git 和 CodeCommit 设置公有密钥和私有密钥

  1. 打开 Bash 仿真器。

    注意

    您可能需要使用管理权限运行仿真器。

    在仿真器中运行 ssh-keygen 命令,按照说明将文件保存到您的配置文件的 .ssh 目录。

    例如:

    $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/drive/Users/user-name/.ssh/id_rsa): Type a file name here, for example /c/Users/user-name/.ssh/codecommit_rsa Enter passphrase (empty for no passphrase): <Type a passphrase, and then press Enter> Enter same passphrase again: <Type the passphrase again, and then press Enter> Your identification has been saved in drive/Users/user-name/.ssh/codecommit_rsa. Your public key has been saved in drive/Users/user-name/.ssh/codecommit_rsa.pub. The key fingerprint is: 45:63:d5:99:0e:99:73:50:5e:d4:b3:2d:86:4a:2c:14 user-name@client-name The key's randomart image is: +--[ RSA 2048]----+ | E.+.o*.++| | .o .=.=o.| | . .. *. +| | ..o . +..| | So . . . | | . | | | | | | | +-----------------+

    这会生成:

    • codecommit_rsa 文件,该文件为私有密钥文件。

    • codecommit_rsa.pub 文件,该文件为公有密钥文件。

  2. 运行以下命令显示公有密钥文件 (codecommit_rsa.pub) 的值:

    cd .ssh notepad codecommit_rsa.pub

    复制文件内容,然后在不保存的情况下关闭记事本。该文件的内容类似于以下内容:

    ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2 5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@computer-name
  3. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/

    注意

    您可以在 My Security Credentials (我的安全凭证) 中直接查看和管理您的 CodeCommit 凭证。有关更多信息,请参阅 查看和管理您的凭证

  4. 在 IAM 控制台的导航窗格中,选择 Users (用户),然后从用户列表中选择您的 IAM 用户。

  5. 在用户详细信息页面上,选择 Security Credentials 选项卡,然后选择 Upload SSH public key

  6. 将 SSH 公有密钥的内容粘贴到该字段中,然后选择 Upload SSH public key

  7. 复制或保存 SSH Key ID 中的信息 (例如,APKAEIBAERJR2EXAMPLE)。

    
            IAM 控制台中的 SSH 密钥 ID

    注意

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

  8. 在 Bash 仿真器中,运行以下命令在 ~/.ssh 目录中创建一个配置文件,如果文件已存在,则编辑该文件:

    notepad ~/.ssh/config
  9. 将以下行添加到该文件中,其中 User 的值是您之前复制的 SSH 密钥 ID,IdentityFile 的值是私有密钥文件的路径和名称:

    Host git-codecommit.*.amazonaws.com User APKAEIBAERJR2EXAMPLE IdentityFile ~/.ssh/codecommit_rsa

    注意

    如果您给私有密钥文件起了一个 codecommit_rsa 以外的名称,请务必在此处使用自己指定的名称。

    将文件另存为 config(不是 config.txt),然后关闭记事本。

    重要

    文件名必须为 config,不带文件扩展名。否则,SSH 连接将失败。

  10. 运行下面的命令测试您的 SSH 配置:

    ssh git-codecommit.us-east-2.amazonaws.com

    系统会要求您确认连接,因为 git-codecommit.us-east-2.amazonaws.com 尚未包含在您的已知主机文件中。验证过程中会显示 CodeCommit 服务器指纹 (适用于 MD5 的a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e 或适用于 SHA256 的 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ)。

    注意

    CodeCommit 服务器指纹对于每个区域都是唯一的。要查看特定区域的服务器指纹,请参阅CodeCommit 的服务器指纹

    确认连接后,您应会看到已将服务器添加到已知主机文件的确认消息和成功连接消息。如果未看到成功消息,请仔细检查以下事项:已将 config 文件保存在您配置的用于访问 CodeCommit 的 IAM 用户的 ~/.ssh 目录、config 文件没有文件扩展名(例如,不能将其命名为 config.txt)、已指定正确的私有密钥文件(codecommit_rsa,不是 codecommit_rsa.pub)。

    如需获取帮助您排查问题的信息,请运行 ssh 命令并指定 -v 参数:

    ssh -v git-codecommit.us-east-2.amazonaws.com

    有关可帮助您解决连接问题的信息,请参阅 问题排查

步骤 4:连接 CodeCommit 控制台并克隆存储库

如果管理员已将 CodeCommit 存储库的名称和连接详细信息发送给您,您可以跳过该步骤并直接克隆存储库。

连接 CodeCommit 存储库

  1. 通过以下网址打开 CodeCommit 控制台:https://console.aws.amazon.com/codesuite/codecommit/home

  2. 在区域选择器中,选择创建存储库的区域。存储库特定于 AWS 区域。有关更多信息,请参阅 区域和 Git 连接终端节点

  3. 从列表中选择需要连接的存储库。这将打开该存储库的 Code 页。

    如果看到 Welcome 页面,而不是存储库列表,说明没有存储库与您的 AWS 账户关联。要创建存储库,请参阅创建 AWS CodeCommit 存储库或按照Git 与 CodeCommit 教程教程中的步骤进行操作。

  4. 选择 Clone URL (克隆 URL),然后复制 SSH URL。

  5. 在 Bash 仿真器中,使用刚刚复制的 SSH URL,运行 git clone 命令克隆存储库。该命令会在运行命令的目录的子目录中创建本地存储库。例如,要将名为 MyDemoRepo 的存储库克隆到美国东部(俄亥俄州)区域中名为 my-demo-repo 的本地存储库,请运行以下命令:

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

    或者,打开命令提示符,使用您上传到 IAM 的公有密钥的 URL 和 SSH 密钥 ID 运行 git clone 命令。这将在运行命令的目录的子目录中创建本地存储库。例如,要将名为 MyDemoRepo 的存储库克隆成名为 my-demo-repo 的本地存储库,请运行以下命令:

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

    有关更多信息,请参阅通过克隆存储库来连接 CodeCommit 存储库创建提交

后续步骤

您已满足先决条件。请按照CodeCommit 教程中的步骤进行操作,开始使用 CodeCommit。