在GitHub 上託管的Go 專案上使用CircleCI 時,您可能會遇到令人困惑的錯誤: 「代理金鑰RSA SHA256 :...回傳了錯誤的簽章類型。」這個看似不相關的錯誤發生在與master 不同的分支上的Git拉取過程中。
簽章類型不符
「代理金鑰傳回了錯誤的簽章類型」警告表示用於連接的 SSH 代理程式提供了無效簽章。使用 RSA SSH 金鑰時,使用者可以選擇三種雜湊演算法之一:SHA-1、SHA-256 或 SHA-512。但是,該錯誤表示發生了不匹配。
最初,RSA SSH 金鑰專門使用 SHA-1 進行簽署。由於其脆弱性,更強大的哈希演算法被引入。當代理根據請求產生 SHA-1 簽章而不是協商的 SHA-256 或 SHA-512 時,就會出現錯誤,這違反了代理協議。
雖然本質上不是致命的,但該錯誤可能會導致連接失敗如果缺乏對 SHA-1 簽名的支持,則會被遠端拒絕。
Git 分支問題
隨後的錯誤訊息源自於嘗試 git pull 時未指定相關分支的遠端位置。這種情況通常發生在現有儲存庫上使用 go get 時,因為它會自動嘗試更新儲存庫。
要解決此問題,請避免使用 go get 進行依賴項安裝,因為 go build 通常會無縫處理此任務。或者,對於更複雜的場景,選擇 Git 本身而不是 go get。
以上是為什麼 CircleCI 上的我的 Go 專案因「代理金鑰返回了錯誤的簽章類型」和 Git 分支問題而失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!