我正在開發一個小的 ruby?? 腳本,它將在兩個不同的服務器上簽出和同步一個分支。我試圖弄清楚如何在拉動時將密碼傳遞給 git。現在我有
Net::SSH.start(host, user, password: password) do |ssh|
# other code....
result = ssh.exec!("git pull")
# results in Enter passphrase for key '/root/.ssh/id_rsa'
end
運行 git 命令后,它會提示輸入密鑰密碼。
是否可以使用 git 命令傳遞它?或者在紅寶石中有另一種方法可以做到這一點?
uj5u.com熱心網友回復:
net-ssh 檔案確實提到該方法接受Net::SSH.start()密碼引數:
passphrase
加載私鑰時使用的密碼(默認為 nil,無密碼)
因此,如果您可以在程式中獲取密碼(從檔案或環境變數中),則可以將該引數添加到Net::SSH.start()方法中。
但是,一旦連接,最好:
- 對 Git SSH URL 使用無密碼密鑰
- 或者使用 HTTPS URL 代替
git pull命令,因為您可以在憑證存盤中一次性注冊與該 HTTPS URL 關聯的所有密碼(不是密碼短語)。
使用密碼意味著添加到您的 SSH 會話中:
- 運行 ssh 代理
- 通過腳本輸入密碼
這似乎相當麻煩。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431886.html
上一篇:無法從Xcode推送或拉取
