
我必須在虛擬機器上克隆幾個儲存庫,然後在它們上建立軟體。我有非常好的建置腳本,但有一個問題。在建置之前,應該複製幾個儲存庫,並且在一些安全性更新之後,我不允許將我的公鑰新增到 git 伺服器,並且僅支援的協定是 ssh。
克隆指令如下圖所示:
git clone ssh://[email protected]:YYYY/repoB
但它們有很多,並且在每個之後傳遞密碼確實很煩人且耗時。
我想做的是將密碼自動傳遞給克隆命令。我試圖添加 userA:passwordA@git-ger.... 但它僅適用於 HTTPS,不適用於 ssh。我知道我必須切換到一些像ansible這樣的自動化工具來進行自動部署,但我花了很多時間重寫整個建置流程。
我的問題是如何自動傳遞密碼來克隆儲存庫,而不更改伺服器上的任何內容。理想情況下,是從 bash 等級執行此操作。我在輸入 git clone 後嘗試閱讀行,但它對我也不起作用。任何幫助將不勝感激
答案1
IMO 最好的解決方案是使用自訂GIT_ASKPASS
幫助程式並將密碼作為另一個環境變數提供。例如,建立一個文件git-askpass-helper.sh
:
#!/bin/sh
exec echo "$GIT_PASSWORD"
然後git clone https://username@hostname/repo
使用環境變數GIT_ASKPASS=/path/to/git-askpass-helper.sh
和運行GIT_PASSWORD=nuclearlaunchcodes
。