AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解 SSH 連線至AWS CodeCommit
以下資訊可以協助您對使用 SSH 來連接 CodeCommit 儲存庫時的常見問題進行故障診斷。
主題
- 存取錯誤:公開金鑰已成功上傳至 IAM,但在 Linux、macOS 或 Unix 系統上連線失敗
- 存取錯誤:公開金鑰已成功上傳至 IAM,並成功測試 SSH,但 Windows 系統上的連線失敗
- 身分驗證挑戰:連接到 CodeCommit 儲存庫時無法建立主機的真偽
- IAM 錯誤:嘗試將公鑰添加到 IAM 時出現「格式無效」
- 我需要訪問CodeCommit使用 SSH 登入資料存放在多個亞馬遜網路服務帳戶
- Windows 上的 Git:嘗試使用 SSH 連接時,Bash 模擬器或命令列凍結
- 公鑰格式需要 Linux 的某些發行版中的規範
- 訪問錯誤:連接到一個 SSH 公鑰被拒絕CodeCommit儲存庫
存取錯誤:公開金鑰已成功上傳至 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
存取錯誤:公開金鑰已成功上傳至 IAM,並成功測試 SSH,但 Windows 系統上的連線失敗
問題:當您嘗試使用 SSH 端點來克隆或與CodeCommit儲存庫時,會出現包含該片語的錯誤訊息No supported authentication methods available
。
可能的修正:此錯誤最常見的原因是,當您嘗試使用 SSH 時,您的 Windows 系統環境變數集將 Windows 導向使用另一個程式。例如,您可能已設定 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 命令列透過 SSH 連接時,如果您的 Windows 版本規定連接字串必須包含 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 Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux或適用於 Windows 上的 SSH 連線中的指示。
如果您按照這些步驟操作並且問題仍然存在,則可能有人嘗試man-in-the-middle攻擊。當您看到下列訊息時,請輸入 no
並按 Enter 鍵。
Are you sure you want to continue connecting (yes/no)?
請確定 CodeCommit 的指紋和公有金鑰與 SSH 設定主題中所述相符,再繼續進行連線。
伺服器 | 密碼雜湊類型 | 指紋 |
---|---|---|
git 代碼提交. 美東 2. 亞馬遜 | MD5 | a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e |
git 代碼提交. 美東 2. 亞馬遜 | SHA256 | 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ |
git 代碼提交. 我東-1. 亞馬遜 | MD5 | a6:9c:7d:bc:35:f5:d4:5f:8b:ba:6f:c8:bc:d4:83:84 |
git 代碼提交. 我東-1. 亞馬遜 | SHA256 | eLMY1j0DKA4uvDZcl/KgtIayZANwX6t8+8isPtotBoY |
git 代碼提交. 我們西部-亞馬遜 | MD5 | a8:68:53:e3:99:ac:6e:d7:04:7e:f7:92:95:77:a9:77 |
git 代碼提交. 我們西部-亞馬遜 | SHA256 | 0pJx9SQpkbPUAHwy58UVIq0IHcyo1fwCpOOuVgcAWPo |
git 代碼提交. 歐盟西部-亞馬遜 | MD5 | 93:42:36:ea:22:1f:f1:0f:20:02:4a:79:ff:ea:12:1d |
git 代碼提交. 歐盟西部-亞馬遜 | SHA256 | tKjRkOL8dmJyTmSbeSdN1S8F/f0iql3RlvqgTOP1UyQ |
git 代碼提交. AP-東北-1. 亞馬遜 | MD5 | 8e:a3:f0:80:98:48:1c:5c:6f:59:db:a7:8f:6e:c6:cb |
git 代碼提交. AP-東北-1. 亞馬遜 | SHA256 | Xk/WeYD/K/bnBybzhiuu4dWpBJtXPf7E30jHU7se4Ow |
git 代碼提交. AP-東南部-亞馬遜 | MD5 | 65:e5:27:c3:09:68:0d:8e:b7:6d:94:25:80:3e:93:cf |
git 代碼提交. AP-東南部-亞馬遜 | SHA256 | ZIsVa7OVzxrTIf+Rk4UbhPv6Es22mSB3uTBojfPXIno |
git 代碼提交. AP-東南部-亞馬遜 | MD5 | 7b:d2:c1:24:e6:91:a5:7b:fa:c1:0c:35:95:87:da:a0 |
git 代碼提交. AP-東南部-亞馬遜 | SHA256 | nYp+gHas80HY3DqbP4yanCDFhqDVjseefVbHEXqH2Ec |
git 代碼提交. AP-東南部-3. 亞馬遜 | MD5 | 64:d9:e0:53:19:4f:a8:91:9a:c3:53:22:a6:a8:ed:a6 |
git 代碼提交. AP-東南部-3. 亞馬遜 | SHA256 | ATdkGSFhpqIu7RqUVT/1RZo6MLxxxUW9NoDVMbAc/6g |
git 代碼提交. 我中心 1. 亞馬遜 | MD5 | bd:fa:e2:f9:05:84:d6:39:6f:bc:d6:8d:fe:de:61:76 |
git 代碼提交. 我中心 1. 亞馬遜 | SHA256 | grceUDWubo4MzG1NoaKZKUfrgPvfN3ijliOnQr1lTZA |
git 代碼提交. 歐盟中央-1. 亞馬遜 | MD5 | 74:5a:e8:02:fc:b2:9c:06:10:b4:78:84:65:94:22:2d |
git 代碼提交. 歐盟中央-1. 亞馬遜 | SHA256 | MwGrkiEki8QkkBtlAgXbYt0hoZYBnZF62VY5RzGJEUY |
git 代碼提交. AP-東北-2. 亞馬遜 | MD5 | 9f:68:48:9b:5f:fc:96:69:39:45:58:87:95:b3:69:ed |
git 代碼提交. AP-東北-2. 亞馬遜 | SHA256 | eegAPQrWY9YsYo9ZHIKOmxetfXBHzAZd8Eya53Qcwko |
git 代碼提交. SA-東-1. 亞馬遜 | MD5 | 74:99:9d:ff:2b:ef:63:c6:4b:b4:6a:7f:62:c5:4b:51 |
git 代碼提交. SA-東-1. 亞馬遜 | SHA256 | kW+VKB0jpRaG/ZbXkgbtMQbKgEDK7JnISV3SVoyCmzU |
git 代碼提交. 我們西部-亞馬遜 | MD5 | 3b:76:18:83:13:2c:f8:eb:e9:a3:d0:51:10:32:e7:d1 |
git 代碼提交. 我們西部-亞馬遜 | SHA256 | gzauWTWXDK2u5KuMMi5vbKTmfyerdIwgSbzYBODLpzg |
git 代碼提交. 歐盟西部-亞馬遜 | MD5 | a5:65:a6:b1:84:02:b1:95:43:f9:0e:de:dd:ed:61:d3 |
git 代碼提交. 歐盟西部-亞馬遜 | SHA256 | r0Rwz5k/IHp/QyrRnfiM9j02D5UEqMbtFNTuDG2hNbs |
git 代碼提交. AP-南 1. 亞馬遜 | MD5 | da:41:1e:07:3b:9e:76:a0:c5:1e:64:88:03:69:86:21 |
git 代碼提交. AP-南 1. 亞馬遜 | SHA256 | hUKwnTj7+Xpx4Kddb6p45j4RazIJ4IhAMD8k29itOfE |
git 代碼提交. AP-南 2. 亞馬遜 | MD5 | bc:cc:9f:15:f8:f3:58:a2:68:65:21:e2:23:71:8d:ce |
git 代碼提交. AP-南 2. 亞馬遜 | SHA256 | Xe0CyZEOvgR5Xa2YUGqf+jn8/Ut7l7nX/CmslSFNEig |
git 代碼提交. CA-中央-1. 亞馬遜 | MD5 | 9f:7c:a2:2f:8c:b5:74:fd:ab:b7:e1:fd:af:46:ed:23 |
git 代碼提交. CA-中央-1. 亞馬遜 | SHA256 | Qz5puafQdANVprLlj6r0Qyh4lCNsF6ob61dGcPtFS7w |
git 代碼提交. 歐盟西部-3. 亞馬遜 | MD5 | 1b:7f:97:dd:d7:76:8a:32:2c:bd:2c:7b:33:74:6a:76 |
git 代碼提交. 歐盟西部-3. 亞馬遜 | SHA256 | uw7c2FL564jVoFgtc+ikzILnKBsZz7t9+CFdSJjKbLI |
git 代碼提交。us-gov-west-1. 亞馬遜 | MD5 | 9f:6c:19:3b:88:cd:e8:88:1b:9c:98:6a:95:31:8a:69 |
git 代碼提交。us-gov-west-1. 亞馬遜 | SHA256 | djXQoSIFcg8vHe0KVH1xW/gOF9X37tWTqu4Hkng75x4 |
git 代碼提交。us-gov-east-1. 亞馬遜 | MD5 | 00:8d:b5:55:6f:05:78:05:ed:ea:cb:3f:e6:f0:62:f2 |
git 代碼提交。us-gov-east-1. 亞馬遜 | SHA256 | fVb+R0z7qW7minenW+rUpAABRCRBTCzmETAJEQrg98 |
地址代碼提交. 歐盟北 1. 亞馬遜 | MD5 | 8e:53:d8:59:35:88:82:fd:73:4b:60:8a:50:70:38:f4 |
地址代碼提交. 歐盟北 1. 亞馬遜 | SHA256 | b6KSK7xKq+V8jl7iuAcjqXsG7zkqoUZZmmhYYFBq1wQ |
git 代碼提交. 我-南 | MD5 | 0e:39:28:56:d5:41:e6:8d:fa:81:45:37:fb:f3:cd:f7 |
git 代碼提交. 我-南 | SHA256 | O+NToCGgjrHekiBuOl0ad7ROGEsz+DBLXOd/c9wc0JU |
git 代碼提交. AP-東-1. 亞馬遜 | MD5 | a8:00:3d:24:52:9d:61:0e:f6:e3:88:c8:96:01:1c:fe |
git 代碼提交. AP-東-1. 亞馬遜 | SHA256 | LafadYwUYW8hONoTRpojbjNs9IRnbEwHtezD3aAIBX0 |
git 代碼提交. CN-北 1. 亞馬遜 | MD5 | 11:7e:2d:74:9e:3b:94:a2:69:14:75:6f:5e:22:3b:b3 |
git 代碼提交. CN-北 1. 亞馬遜 | SHA256 | IYUXxH2OpTDsyYMLIp+JY8CTLS4UX+ZC5JVZXPRaxc8 |
git 代碼提交. CN-西北部-1. 亞馬遜 | MD5 | 2e:a7:fb:4c:33:ac:6c:f9:aa:f2:bc:fb:0a:7b:1e:b6 |
git 代碼提交. CN-西北部-1. 亞馬遜 | SHA256 | wqjd6eHd0+mOBx+dCNuL0omUoCNjaDtZiEpWj5TmCfQ |
GIT 代碼提交歐盟南部 1. 亞馬遜 | MD5 | b9:f6:5d:e2:48:92:3f:a9:37:1e:c4:d0:32:0e:fb:11 |
GIT 代碼提交歐盟南部 1. 亞馬遜 | SHA256 | lyXrWbCg3uQmJrl1XxB/ASR7ugW1Ysf5yzYOJbudHsI |
git 代碼提交. AP-東北-3. 亞馬遜 | MD5 | 25:17:40:da:b9:d4:18:c3:b6:b3:fb:ed:1c:20:fe:29 |
git 代碼提交. AP-東北-3. 亞馬遜 | SHA256 | 2B815B9F0AvwLnRxSVxUz4kDYmtEQUGGdQYP8OQLXhA |
GIT 代碼提交. AF-南-亞馬遜 | MD5 | 21:a0:ba:d7:c1:d1:b5:39:98:8d:4d:7c:96:f5:ca:29 |
GIT 代碼提交. AF-南-亞馬遜 | SHA256 | C34ji3x/cnsDZjUpyNGXdE5pjHYimqJrQZ3leTgqJHM |
git 代碼提交. 中央-1. 亞馬遜 | MD5 | 04:74:89:16:98:7a:61:b1:69:46:42:3c:d1:b4:ac:a9 |
git 代碼提交. 中央-1. 亞馬遜 | SHA256 | uFxhp51kUWhleTLeYbxQVYm4RnNLNZ5Dbdm1cgdSl/8 |
IAM 錯誤:嘗試將公鑰添加到 IAM 時出現「格式無效」
問題:在 IAM 中,當嘗試設置使用 SSH 時CodeCommit時,會出現包含該片語的錯誤訊息Invalid
format
當您嘗試添加您的公鑰時。
可能的修正:IAM 要求公開金鑰必須以 ssh-rsa 格式或 PEM 格式進行編碼。它僅接受 OpenSSH 格式的公鑰,並且具有中規定的其他要求搭配使用 SSH 金鑰CodeCommit在IAM 使用者指南。如果您提供另一種格式的公有金鑰,或金鑰未包含必要的位元數,您會看到此錯誤。
-
當您複製 SSH 公開金鑰時,您的作業系統可能已經引入換行符號。請確定您新增至 IAM 的公開金鑰中沒有換行符號。
-
某些 Windows 作業系統不會使用 OpenSSH 格式。若要產生金鑰配對並複製 IAM 所需的 OpenSSH 格式,請參閱步驟 3:設定 Git 和 CodeCommit 的公有和私有金鑰。
如需 IAM 中 SSH 金鑰需求的詳細資訊,請參閱搭配使用 SSH 金鑰CodeCommit在IAM 使用者指南。
我需要訪問CodeCommit使用 SSH 登入資料存放在多個亞馬遜網路服務帳戶
問題:我想設置 SSH 訪問CodeCommit儲存庫位於多個亞馬遜網路服務帳戶中。
可能的修正:您可以為每個 Amazon 網路服務帳戶建立唯一的 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.
在這種配置中,您將能夠用「代碼提交 2」替換「Git 代碼提交。例如,若要在第二個 Amazon 網路服務帳戶中複製儲存庫:
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
-
如果您安裝了膩子,請打開膩子,然後在主機名稱 (或 IP 位址),輸入CodeCommit您想要達到的端點(例如,git 代碼提交. 選擇 Open (開啟)。當出現 PuTTY 安全提醒的提示時,請選擇 Yes (是),以永久快取金鑰。
-
重新命名或刪除
GIT_SSH
環境變數 (如果您已不再使用它)。然後開啟新的命令提示字元或 Bash 模擬器工作階段,並再次嘗試您的命令。
關於其他解決方案,請參閱 Stack Overflow 上Git 複製/提取在快取的存放區金鑰中持續凍結
公鑰格式需要 Linux 的某些發行版中的規範
問題:當您嘗試設定公用-私密金鑰組時,您會收到錯誤訊息。
可能的修正:某些 Linux 發行版需要在~/.ssh/config
指定接受的公開金鑰類型的檔案。如需詳細資訊,請參閱您發行版本的相關文件PubkeyAcceptedKeyTypes
。
訪問錯誤:連接到一個 SSH 公鑰被拒絕CodeCommit儲存庫
問題:當您嘗試使用 SSH 端點與CodeCommit儲存庫時,會出現包含該片語的錯誤訊息Error: public key denied
。
可能的修正:此錯誤最常見的原因是您尚未完成 SSH 連接的設定。設定公開和私密安全殼層金鑰配對,然後將公開金鑰與 IAM 使用者建立關聯。如需設定 SSH 的詳細資訊,請參閱Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux和適用於 Windows 上的 SSH 連線。