當通過HTTP(S)連接到遠程存儲庫時,有沒有辦法讓git記住我的憑據?Git http - 安全地記住憑據
我試過core.askpass
方法中詳述的git-config
讓外部腳本提供我的憑據。雖然它的效果很好,但用戶名和密碼仍然以純文本形式存儲在小型shell腳本中。
當通過HTTP(S)連接到遠程存儲庫時,有沒有辦法讓git記住我的憑據?Git http - 安全地記住憑據
我試過core.askpass
方法中詳述的git-config
讓外部腳本提供我的憑據。雖然它的效果很好,但用戶名和密碼仍然以純文本形式存儲在小型shell腳本中。
git
通過HTTP運行時調用cURL。您可以通過在用戶的主目錄中設置.netrc
文件並將其設置爲用戶專用(Linux中的0600)來存儲安全憑證。
該文件的內容爲每個遠程域提供用戶名和密碼。
machine myRemoteServer
login myUserName
password s3cret
全服務器端的配置,它可以很容易地包括到您的LDAP服務器通話時看到https://stackoverflow.com/questions/3947530/git-push-fatal-failed/7177690#7177690。
這是更安全的,然後在命令中輸入密碼,因爲命令歷史文件是世界可讀的,而.netrc應該明確地隱藏起來,除了擁有的用戶以外的任何人..在linux/cygwin的bash_history文件的權限(-rw-r - r-- 1 myName域用戶8955 Aug 24 12:53 .bash_history) – Eddie 2011-08-24 19:35:39
也是如此,因爲它可以防止密碼字符串在'ps -ax'的輸出中是世界可見的Git命令正在運行。 – 2012-01-06 00:28:20
另請參閱[Git - 如何在Windows上使用.netrc文件以保存用戶和密碼](http://stackoverflow.com/questions/6031214/git-how-to-use-netrc-file-on-windows-to -save-user-and-password) – 2012-06-01 08:48:19
安全選項是使用普通的SSH與公鑰/私鑰對。
@John,我正在downvoting:在Git客戶端和服務器之間,正確的,經過身份驗證的HTTPS傳輸與SSH一樣安全。在大型組織中,用戶訪問的集中式單帳戶配置/撤銷是一個非常常見的限制。 AFAIK,OpenSSH只能處理本地文件中的用戶pubkeys,而不能通過目錄查找(例如LDAP)。 – 2012-01-06 01:13:29
@ RyanB.Lynch:僅供參考OpenSSH-LPK將公鑰存儲在LDAP中,但它被*修補* OpenSSH http://code.google。com/p/openssh -lpk/ – 2012-10-17 15:52:11
因爲(我認爲)Git版本1.7.8,從2 2011年12月1),git的支持所謂的憑據助手:
看到gitcredentials(7)手冊頁
(該手冊頁還描述了適合於此的core.askpass
)。
默認的git安裝包括兩個幫手:
緩存:詳見git-credential-cache(1)。
將內存中的憑證緩存一段時間。存儲的憑證永遠不會觸及磁盤,並在可配置的超時後被遺忘。
店面:詳情請見git-credential-store(1)。
將憑據無限期地存儲在磁盤上。該文件將設置其文件系統權限,以防止系統上的其他用戶讀取它,但不會被加密或以其他方式受到保護。同樣的安全性.netrc
解決方案Eddie response
有在KDEWallet(KDE)中存儲的用戶名和密碼,在GNOME Keyring一些第三方證書幫手,在Windows Credential Store,在MacOS X的鑰匙扣等
腳註:
1)的Set Up Git GitHub的幫助頁提到
你需要的git 1.7.10或更新使用證書幫手
憑證緩存方法在Ubuntu 12.04下的Git 1.7.9.5中沒有問題。感謝指針。 – MKroehnert 2012-11-15 09:32:47
謝謝 - 這爲我做了詭計: git config credential.helper store – 2012-12-19 19:34:02
由於git 1.8.3(5月,2013年),現在你可以指定一個加密.netrc
的git的使用方法:
一個new read-only credential helper(在
contrib/credential/netrc/
)與.netrc/.authinfo
文件交互已添加。
該腳本將允許您使用GPG加密NETRC文件,避免其存儲在一個純文本文件的憑據的問題。
-f|--file AUTHFILE
specify netrc-style files.
文件與
.gpg
擴展將通過GPG解析之前被解密。
多個-f
參數都可以。它們按順序處理,找到的第一個匹配條目通過憑證助手協議返回(見下文)。當沒有
-f
選項,則.authinfo.gpg
,.netrc.gpg
,.authinfo
和.netrc
文件在你的home目錄中的順序使用。要啓用此憑據幫手:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(需要注意的是Git會在前面加上 「
git-credential-
」 的助手名和路徑尋找它 )
查看完整的分步示例 at:
「Is there a way to skip password typing when using https://github.com
」。
自2011年12月以來(git版本1.7.8),您可以使用所謂的**憑據助手**,請參閱我的答案:http://stackoverflow.com/a/12938677/46058 – 2012-10-17 16:14:41
您現在可以使用加密的' netrc'文件!請參見[我的答案](http://stackoverflow.com/a/16164673/6309) – VonC 2013-04-23 08:38:19