

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Windows 上通过 SSH 连接到 AWS CodeCommit 存储库的设置步骤
<a name="setting-up-ssh-windows"></a>

在首次连接之前，必须完成一些初始配置步骤。 AWS CodeCommit 设置计算机和 AWS 配置文件后，您可以连接到存储库并将该 CodeCommit存储库克隆到您的计算机（也称为创建本地存储库）。如果您刚刚接触 Git，我们建议您查看[哪里可以找到有关 Git 的更多信息？](welcome.md#welcome-get-started-with-git)中的信息。

**Topics**
+ [步骤 1：的初始配置 CodeCommit](#setting-up-ssh-windows-account)
+ [步骤 2：安装 Git](#setting-up-ssh-windows-install-git)
+ [第 3 步：为 Git 设置公钥和私钥以及 CodeCommit](#setting-up-ssh-windows-keys-windows)
+ [步骤 4：Connect 连接到 CodeCommit 控制台并克隆存储库](#setting-up-ssh-windows-connect-console)
+ [后续步骤](#setting-up-ssh-windows-next-step)

## 步骤 1：的初始配置 CodeCommit
<a name="setting-up-ssh-windows-account"></a>

按照以下步骤设置 Amazon Web Services 账户、创建 IAM 用户并配置访问权限 CodeCommit。

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

1. 前往 [http://aws.amazon.com](https://aws.amazon.com/)，并选择**注册**，创建一个 Amazon Web Services 账户。

1. 创建 IAM 用户或使用您的 Amazon Web Services 账户中的现有用户。确保您具有与该 IAM 用户关联的访问密钥 ID 和秘密访问密钥。有关更多信息，请参阅[在 Amazon Web Services 账户中创建 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html)。
**注意**  
CodeCommit 要求 AWS Key Management Service。如果您使用的是现有的 IAM 用户，请确保该用户没有明确拒绝所要求的 AWS KMS 操作的策略 CodeCommit。有关更多信息，请参阅 [AWS KMS 和加密](encryption.md)。

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. **在 IAM 控制台的导航窗格中，选择 Users，然后选择要配置 CodeCommit 访问权限的 IAM 用户。**

1. 在 **Permissions** 选项卡上，选择 **Add Permissions**。

1. 在 **Grant permissions (授予权限)** 中，选择 **Attach existing policies directly (直接附加现有策略)**。

1. 从策略列表中，选择**AWSCodeCommitPowerUser**或其他托管策略进行 CodeCommit 访问。有关更多信息，请参阅 [AWS 的托管策略 CodeCommit](security-iam-awsmanpol.md)。

   选择要附加的策略后，选择**下一步：审核**以审核要附加到 IAM 用户的策略列表。如果列表正确，选择 **Add permissions**。

    有关 CodeCommit 托管策略以及与其他群组和用户共享仓库访问权限的更多信息，请参阅[共享存储库](how-to-share-repository.md)和[的身份验证和访问控制 AWS CodeCommit](auth-and-access-control.md)。

**注意**  
如果要在中使用 AWS CLI 命令 CodeCommit，请安装 AWS CLI。有关更多信息，请参阅 [命令行参考](cmd-ref.md)。

## 步骤 2：安装 Git
<a name="setting-up-ssh-windows-install-git"></a>

要处理 CodeCommit 存储库中的文件、提交和其他信息，必须在本地计算机上安装 Git。 CodeCommit 支持 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持为初始提交配置分支名称。我们建议使用最新版本的 Git。

要安装 Git，建议您访问 [Git 下载](http://git-scm.com/downloads)等网站。

**注意**  
Git 是一个不断发展的平台，会定期进行更新。有时，功能更改可能会影响其工作方式 CodeCommit。如果您在使用特定版本的 Git 时遇到问题 CodeCommit，请查看中的信息[故障排除](troubleshooting.md)。

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

## 第 3 步：为 Git 设置公钥和私钥以及 CodeCommit
<a name="setting-up-ssh-windows-keys-windows"></a>

**在 Git 和 Windows 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\$1rsa*文件，即私钥文件。
   + *codecommit\$1rsa*.pub 文件，即公钥文件。
**提示**  
默认情况下，**ssh-keygen** 生成 2048 位密钥。您可以使用 -t 和 -b 参数来指定密钥的类型和长度。如果您想要 rsa 格式的 4096 位密钥，可以通过使用以下参数来运行命令：  

   ```
   ssh-keygen -t rsa -b 4096
   ```
有关 SSH 密钥所需的格式和长度的更多信息，请参阅将 [IAM 与配合使用 CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html#ssh-keys-code-commit)。

1. 运行以下命令以显示公钥文件 (*codecommit\$1rsa*.pub) 的值：

   ```
   cd .ssh
   notepad codecommit_rsa.pub
   ```

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

   ```
   ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB
   gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2
   5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc
   NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw
   DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@computer-name
   ```

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。
**注意**  
您可以在 “**我的安全 CodeCommit 证书” 中直接查看和管理您的证书**。有关更多信息，请参阅 [查看和管理您的凭证](setting-up.md#setting-up-view-credentials)。

1. 在 IAM 控制台的导航窗格中，选择**用户**，然后从用户列表中选择您的 IAM 用户。

1. 在用户详细信息页面上，选择 **Security Credentials** 选项卡，然后选择 **Upload SSH public key**。

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

1. 复制或保存 **SSH 密钥 ID** 中的信息（例如，*APKAEIBAERJR2EXAMPLE*）。  
![\[IAM 控制台中的 SSH 密钥 ID\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-ssh-key-id-iam.png)
**注意**  
如果您 IDs 上传了多个 SSH 密钥，则密钥将按密钥 ID 的字母顺序列出，而不是按上传日期排列。请确保已复制与正确上传日期关联的密钥 ID。

1. 在 Bash 仿真器中，运行以下命令在 \$1/.ssh 目录中创建一个配置文件，如果文件已存在，则编辑该文件：

   ```
   notepad ~/.ssh/config
   ```

1. 在文件中添加以下几行，其中的值*User*是您之前复制的 SSH 密钥 ID，的值*IdentityFile*是私钥文件的路径和名称：

   ```
   Host git-codecommit.*.amazonaws.com
     User APKAEIBAERJR2EXAMPLE
     IdentityFile ~/.ssh/codecommit_rsa
   ```
**注意**  
如果您为私钥文件指定了其他名称*codecommit\$1rsa*，请务必在此处使用该名称。  
您可以设置对多个 Amazon Web Services 账户中存储库的 SSH 访问权限。有关更多信息，请参阅[对 SSH 连接进行故障排除 AWS CodeCommit](troubleshooting-ssh.md)。

   将文件另存为 config（不是 config.txt），然后关闭记事本。
**重要**  
文件名必须为 `config`，不带文件扩展名。否则，SSH 连接将失败。

1. 运行下面的命令测试您的 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`对`3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ`于 SHA256）。
**注意**  
CodeCommit 每个 AWS 区域服务器的指纹都是独一无二的。要查看的服务器指纹 AWS 区域，请参阅[的服务器指纹 CodeCommit](regions.md#regions-fingerprints)。

   确认连接后，您应会看到已将服务器添加到已知主机文件的确认消息和成功连接消息。如果您没有看到成功消息，请仔细检查您是否将`config`文件保存在配置为访问的 IAM 用户的 \$1/.ssh 目录中 CodeCommit，该`config`文件是否没有文件扩展名（例如，不能命名为 config.txt），以及是否指定了正确的私钥文件（*codecommit\$1rsa*而不是.pub）。*codecommit\$1rsa*

   要对问题进行排查，请运行 `ssh` 命令并指定 `-v` 参数。例如：

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

   有关可帮助您解决连接问题的信息，请参阅 [对 SSH 连接进行故障排除 AWS CodeCommit](troubleshooting-ssh.md)。

## 步骤 4：Connect 连接到 CodeCommit 控制台并克隆存储库
<a name="setting-up-ssh-windows-connect-console"></a>

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

**连接到存储 CodeCommit 库**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在区域选择器中，选择存储库的创建 AWS 区域 位置。存储库特定于 AWS 区域。有关更多信息，请参阅 [区域和 Git 连接端点](regions.md)。

1. 从列表中找到您要连接的存储库并选择此存储库。选择 **Clone URL (克隆 URL)**，然后选择克隆或连接到存储库时要使用的协议。此时将复制克隆 URL。
   + 如果您使用的是 IAM 用户的 Git 凭证或 AWS CLI附带的凭证助手，请复制 HTTPS URL。
   + 如果您在本地计算机上使用 **git-remote-codecommit** 命令，请复制 HTTPS (GRC) URL。
   + 如果您与 IAM 用户一起使用 SSH public/private 密钥对，请复制 SSH 网址。
**注意**  
 如果您看到的是**欢迎**页面而不是存储库列表，则说明您登录的 AWS 区域 位置中没有与您的 AWS 账户关联的存储库。要创建存储库，请参阅[创建 AWS CodeCommit 存储库](how-to-create-repository.md)或按照[Git 入门和 CodeCommit](getting-started.md)教程中的步骤进行操作。

1. 在 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 存储库来连接存储库](how-to-connect.md#how-to-connect-http)和[创建提交](how-to-create-commit.md)。

## 后续步骤
<a name="setting-up-ssh-windows-next-step"></a>

您已满足先决条件。按照中的步骤[入门 CodeCommit ](getting-started-cc.md)开始使用 CodeCommit。