

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# SSH 連線至 Windows 上 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：連線至 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. 前往 https：//[http://aws.amazon.com](https://aws.amazon.com/) 並選擇**註冊**來建立 Amazon Web Services 帳戶。

1. 在您的 Amazon Web Services 帳戶中建立 IAM 使用者，或使用現有的使用者。請確定您擁有與該 IAM 使用者相關聯的存取金鑰 ID 和私密存取金鑰。如需詳細資訊，請參閱[在您的 Amazon Web Services 帳戶中建立 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html)。
**注意**  
CodeCommit 需要 AWS Key Management Service。如果您使用的是現有的 IAM 使用者，請確定沒有政策連接到明確拒絕 CodeCommit 所需的 AWS KMS 動作的使用者。如需詳細資訊，請參閱[AWS KMS 和 加密](encryption.md)。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**使用者**，然後選擇您要為 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)。

**注意**  
如果您想要搭配 CodeCommit 使用 AWS CLI 命令，請安裝 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 Downloads](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>

**在 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\$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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。
**注意**  
您可以在我的安全登入資料中直接檢視和管理 CodeCommit 登入資料。 ****如需詳細資訊，請參閱[檢視和管理登入資料](setting-up.md#setting-up-view-credentials)。

1. 在 IAM 主控台的導覽窗格中，選擇**使用者**，然後從使用者清單中選擇您的 IAM 使用者。

1. 在使用者詳細資訊頁面，選擇 **Security Credentials (安全登入資料)** 標籤，然後選擇 **Upload SSH public key (上傳 SSH 公有金鑰)**。

1. 將 SSH 公有金鑰的內容貼到欄位中，然後選擇 **Upload SSH public key (上傳 SSH 公有金鑰)**。

1. 複製或儲存 **SSH Key ID (SSH 金鑰 ID)** 中的資訊 (例如，*APKAEIBAERJR2EXAMPLE*)。  
![\[IAM 主控台中的 SSH 金鑰 ID\]](http://docs.aws.amazon.com/zh_tw/codecommit/latest/userguide/images/codecommit-ssh-key-id-iam.png)
**注意**  
如果您已上傳一個以上的 SSH 金鑰 ID，則會依金鑰 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 伺服器指紋會顯示為驗證的一部分 (`a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e`適用於 MD5 或`3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ`適用於 SHA256)。
**注意**  
CodeCommit 伺服器指紋對於每個 都是唯一的 AWS 區域。若要檢視 的伺服器指紋 AWS 區域，請參閱 [CodeCommit 的伺服器指紋](regions.md#regions-fingerprints)。

   確認連線之後，您應該會看到確認訊息，指出您已將伺服器新增到已知主機檔案，還會出現成功連線的訊息。如果您沒有看到成功訊息，請仔細檢查是否已將`config`檔案儲存在您設定存取 CodeCommit 的 IAM 使用者的 \$1/.ssh 目錄中，`config`該檔案沒有副檔名 （例如，不能命名為 config.txt)，並且已指定正確的私有金鑰檔案 (*codecommit\$1rsa*，而不是 *codecommit\$1rsa*.pub)。

   若要疑難排解問題，請使用 `-v` 參數執行 `ssh`命令。例如：

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

   如需資訊來協助您排除連線問題，請參閱[對 的 SSH 連線進行故障診斷 AWS CodeCommit](troubleshooting-ssh.md)。

## 步驟 4：連線至 CodeCommit 主控台並複製儲存庫
<a name="setting-up-ssh-windows-connect-console"></a>

如果管理員已將 CodeCommit 儲存庫的名稱和連線詳細資訊傳送給您，您可以略過此步驟並直接複製儲存庫。

**連線至 CodeCommit 儲存庫**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在區域選擇器中，選擇建立儲存庫 AWS 區域 的 。儲存庫專屬於 AWS 區域。如需詳細資訊，請參閱[區域和 Git 連線端點](regions.md)。

1. 尋找您要從清單連接的儲存庫並加以選擇。選擇 **Clone URL (複製 URL)**，然後選擇複製和連線至儲存庫時要使用的通訊協定。這會將複製 URL 複製。
   + 如果您使用 Git 登入資料搭配 IAM 使用者或 隨附的登入資料協助程式，請複製 HTTPS URL AWS CLI。
   + 如果您是在本機電腦上使用 **git-remote-codecommit** 命令，請複製 HTTPS (GRC) URL。
   + 如果您搭配 IAM 使用者使用 SSH 公有/私有金鑰對，請複製 SSH URL。
**注意**  
 如果您看到**歡迎**頁面，而不是儲存庫清單，則在您登入 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。