SSH 連接到AWS CodeCommit存儲庫 - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可繼續正常使用此服務。了解更多」

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

SSH 連接到AWS CodeCommit存儲庫

在您可以連接到AWS CodeCommit第一次,您必須先完成一些初始設定步驟。在您設定您的計算機和AWS描述檔,則您可以連接到 CodeCommit 儲存庫,並將該儲存庫複製到您的電腦 (也稱為建立本機儲存庫)。如果您是初次使用 Git,您可能還需要檢閱我可以在哪裡進一步了解 Git?中的資訊。

步驟 1:CodeCommit 的初始設定

請遵循以下步驟設定 Amazon Web Services 賬户、建立 IAM 使用者,以及設定 CodeCommit 的存取。

建立和設定 IAM 使用者以存取 CodeCommit
  1. 前往http://aws.amazon.com並選擇註冊

  2. 在您的 Amazon Web Services 賬户中建立 IAM 使用者或使用現有 IAM 使用者。請確定您具有與 IAM 使用者關聯的存取金鑰 ID 和私密存取金鑰。如需詳細資訊,請參閱「」在您的 Amazon Web Services 賬户中建立 IAM 使用者

    注意

    CodeCommit 需要AWS Key Management Service。如果您使用現有 IAM 使用者,請確定連接到使用者的政策沒有明確拒絕AWS KMSCodeCommit 所需的操作。如需詳細資訊,請參閱 AWS KMS和加密

  3. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  4. 在 IAM 主控台的導覽窗格中,選擇使用者,然後選擇您要設定用於 CodeCommit 存取的 IAM 使用者。

  5. Permissions (許可) 標籤上,選擇 Add Permissions (新增許可)

  6. Grant permissions (授予許可) 中,選擇 Attach existing policies directly (直接連接現有政策)

  7. 從政策清單中,選擇AWSCodeCommitPowerUser或另一個用於 CodeCommit 訪問的託管策略。如需詳細資訊,請參閱 AWS 受管理的政策 CodeCommit

    選取您要連接的政策之後,選擇下一頁: 檢閱以檢要連接到 IAM 使用者的政策清單。如果清單正確,請選擇 Add permissions (新增許可)

    如需 CodeCommit 託管政策以及與其他組和使用者共享儲存庫存取權的詳細資訊,請參共用儲存庫AWS CodeCommit的身分驗證與存取控制

注意

如果您想要使用AWS CLI命令,請安裝AWS CLI。如需詳細資訊,請參閱 命令列參考

步驟 2:安裝 Git

要處理 CodeCommit 存儲庫中的文件、提交和其他信息,必須在本地計算機上安裝 Git。CodeCommit 支援 Git 1.7.9 版和更新版本。Git 2.28 版支持為初始提交配置分支名稱。我們建議您使用最新版本的 Git。

若要安裝 Git,建議前往Git 下載

注意

Git 是一種持續演進且定期更新的平台。有時,功能更改可能會影響它與 CodeCommit 搭配使用的方式。如果您在特定版本的 Git 和 CodeCommit 方面遇到問題,請檢疑難排解

如果您安裝的 Git 版本不含 Bash 模擬器,例如 Git Bash,請安裝模擬器。當您設定 SSH 連線時,您將使用此模擬器,而不是 Windows 命令列。

步驟 3:設定 Git 和 CodeCommit 的公有和私有金鑰

設定 Git 和 CodeCommit 的公有和私有金鑰Windows 上的
  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 檔案,這是公有金鑰檔案。

    提示

    在預設情況下,ssh-keygen生成一個 2048 位密鑰。可以使用-t 和-b 參數指定密鑰的類型和長度。如果要使用 rsa 格式的 4096 位密鑰,則可以通過運行具有以下參數的命令來指定此項:

    ssh-keygen -t rsa -b 4096

    如需 SSH 金鑰所需的格式和長度的詳細資訊,請參使用 IAM 與 CodeCommit

  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 Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    注意

    您可以直接查看和管理您的 CodeCommit 憑據我的安全登入資料。如需詳細資訊,請參閱 檢視和管理您的認證

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

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

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

  7. 複製或儲存 SSH Key ID (SSH 金鑰 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 以外的名稱,請務必在此處使用該名稱。

    您可以在多個 Amazon Web Services 帳户中設置存儲庫的 SSH 訪問權限,有關更多信息,請參閲疑難排解 SSH 連線至AWS CodeCommit

    將檔案儲存為 config (而非 config.txt),然後關閉「記事本」。

    重要

    檔案名稱必須是 config 且沒有副檔名。否則,SSH 連線會失敗。

  10. 執行下列命令以測試 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:5eMD5 或3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ對於 SHA256 來説)。

    注意

    CodeCommit 服務器指紋對於每個AWS 區域。要查看服務器指紋AWS 區域,請參伺服器指紋 CodeCommit

    確認連線之後,您應該會看到確認訊息,指出您已將伺服器新增到已知主機檔案,還會出現成功連線的訊息。如果您看不到成功消息,請再次檢查您保存config文件位於您配置為 CodeCommit 訪問而配置的 IAM 用户的 ~/.ssh 目錄中,config文件沒有文件擴展名(例如,它不能命名為 config.txt),並且您指定了正確的私鑰文件(代碼提交 _rsa,而不是代碼提交 _rsa.pub)。

    要解決問題,請運行ssh命令與-v參數。例如:

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

    如需資訊來協助您排除連線問題,請參閱疑難排解 SSH 連線至AWS CodeCommit

步驟 4:Connect 到 CodeCommit 控制台並克隆存儲庫

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

連接到 CodeCommit 儲存庫
  1. 開啟 CodeCommit 主控台https://console.aws.amazon.com/codesuite/codecommit/home

  2. 在區域選擇器中,選擇AWS 區域儲存庫建立。儲存庫為AWS 區域。如需詳細資訊,請參閱 區域和 Git 連線端點

  3. 尋找您要從清單連接的儲存庫並加以選擇。選擇 Clone URL (複製 URL),然後選擇複製和連線至儲存庫時要使用的通訊協定。這會將複製 URL 複製。

    • 如果您是將 Git 登入資料與 IAM 使用者搭配使用,或是使用AWS CLI。

    • 如果您是在本機電腦上使用 git-remote-codecommit 命令,請複製 HTTPS (GRC) URL。

    • 如果您是將 SSH 公有/私有金key pair 與 IAM 使用者搭配使用,請複製 SSH URL。

    注意

    如果您看見歡迎頁面而不是儲存庫清單,這表示沒有與AWS帳户AWS 區域在您登入的位置。要建立儲存庫,請參閱 創建一個 AWS CodeCommit 存儲庫 或依照 開始使用 Git 和 CodeCommit 教學課程中的步驟。

  4. 在 Bash 模擬器,使用您複製的 SSH URL 執行 git clone 命令,以複製儲存庫。在您執行此命令的目錄中,此命令會在該目錄的子目錄中建立本機儲存庫。例如,若要複製名為的儲存庫MyDemoRepo添加到名為my-demoy-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-demoy-repo

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

    如需更多詳細資訊,請參閱 透過複製存 CodeCommit 放庫連 Connect 至儲存庫創建一個提交

下一步驟

您已完成事前準備。請遵循開始使用 CodeCommit 開始使用 CodeCommit。