首頁  >  文章  >  後端開發  >  為什麼我的 CircleCI Go 建置失敗並顯示「代理金鑰 RSA SHA256:...回傳了錯誤的簽章類型」?

為什麼我的 CircleCI Go 建置失敗並顯示「代理金鑰 RSA SHA256:...回傳了錯誤的簽章類型」?

Barbara Streisand
Barbara Streisand原創
2024-11-23 12:29:13606瀏覽

Why Does My CircleCI Go Build Fail with

「代理金鑰RSA SHA256:...傳回了錯誤的簽章類型」錯誤:分析與解決

嘗試執行自動建置時在使用CircleCI 預設範本的Go 專案中,出現了一個神祕的錯誤:「代理金鑰RSA SHA256:...傳回了錯誤的簽章類型。透過更深入的研究,我們將揭示此神秘消息的根本原因,並為您提供解決方案。

此錯誤的根源在於預期的簽章類型與 SSH 代理提供的簽章類型之間的差異。 RSA SSH 金鑰可以採用不同的雜湊演算法進行簽名,包括 SHA-1、SHA-256 和 SHA-512。早期的實作專門使用 SHA-1,導致其對 RSA 金鑰的隱式假設。然而,較弱的 SHA-1 的出現促使引入更強的雜湊演算法來增強安全性。

在這種情況下,「簽章類型不正確」錯誤表示 SSH 連線使用 RSA 金鑰與特定的金鑰進行協商。簽章演算法(SHA-256 或 SHA-512),而 SSH 代理在簽章產生期間提供 SHA-1 簽章。這種違反 SSH 代理協議的行為會觸發錯誤訊息。

值得注意的是,此錯誤本質上不會對建置流程產生不利影響,但如果遠端端點拒絕接受SHA-1 簽名,則可能會中斷連線.

使這個問題變得更加複雜,您還會遇到來自Git 的單獨錯誤訊息。此訊息源自於在沒有為目標分支配置遠端的情況下嘗試執行“git pull”命令。在這種特殊場景中,為依賴管理而設計的“go get”命令被無意中在現有存儲庫上調用,從而導致此錯誤。

為了有效修正這些問題,我們建議使用「go build」來進行依賴安裝目的。此命令會自動取得依賴項,無需“go get”。對於涉及 Git 操作的更複雜的場景,請利用 Git 的固有功能,因為「go get」缺乏處理此類複雜性的複雜性。

以上是為什麼我的 CircleCI Go 建置失敗並顯示「代理金鑰 RSA SHA256:...回傳了錯誤的簽章類型」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn