Go 語言私有依賴的拉取


方案一:使用 http/https 協議

企業用的私有倉庫通常都在內網,個人用戶基本都偏愛 https 協議——因為這不需要配置 ssh 密鑰,而且賬號密碼保存在 Windows 的憑據管理器或者 MacOS 的 keychain 里面,也還算安全。

但是使用賬號密碼進行驗證,不適合給 CI/CD 使用。Linux 下沒有完善的密鑰保管工具,有限的幾個也感覺很難用。

網上流傳比較廣的 linux 下保存 git 憑據的方法,是使用如下方式:

# 內網倉庫使用自簽名 ssl 證書,無法通過 ssl 驗證(不安全)
git config --global http.sslVerify false
# 將 git 賬號密碼直接保存到 ~/.git-credentials 中(明文!不安全)
git config --global credential.helper store
# 直接將密碼注入到 ~/.git-credentials
echo "https://${GIT_USER}:${GIT_PASSWD}@<private-git-url>.com" >> .git-credentials

顯然這非常暴力。。安全性約等於零。。

方案二:ssh 協議

ssh 協議使用 ssh 密鑰進行驗證,相對而言更安全——並不能通過密鑰登錄 Gitlab 頁面進行其他操作。

因此 ssh 協議很適合給 CI/CD 使用。

為了讓 CI/CD 服務器在拉取 Go 依賴時,默認使用 ssh 協議,你需要運行下面這一行命令:

# for github,私有倉庫的話,改下域名就行。
git config --global url."git@github.com:".insteadOf "https://github.com/"

然后再設置好 ssh 密鑰,就能安全地拉取依賴了。密鑰可以通過 jenkins 等 CI/CD 工具進行管理,閱后即焚,進一步提升安全性。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM