當我使用Git克隆具有http和用戶密碼的遠程存儲庫時,是否可以在Windows上使用.netrc文件?Git - 如何在Windows上使用.netrc文件來保存用戶和密碼
回答
您現在可以使用加密的.netrc(與GPG)。
在Windows上:%HOME%/_netrc
(_
,而不是 '.
')
一個new read-only credential helper(在
contrib/
)與.netrc/.authinfo
文件交互已添加。
該腳本將允許您使用GPG加密NETRC文件,避免其存儲在一個純文本文件的憑據的問題。
擴展名爲
.gpg
的文件在解析之前將被GPG解密。
多個-f
參數都可以。它們按順序處理,找到的第一個匹配條目通過憑證助手協議返回。當沒有
-f
選項,則.authinfo.gpg
,.netrc.gpg
,.authinfo
和.netrc
文件在你的home目錄中的順序使用。
要啓用此憑據幫手:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(需要注意的是Git會在前面加上 「
git-credential-
」 的助手名和路徑尋找它 )
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
查看「Is there a way to skip password typing when using https:// github
」的完整示例
更新2012年末,隨着Git版本1.7.9+:This answer從Mark Longair詳細介紹了credential cache mechanism它允許你不儲存您的密碼以純文本,如下圖所示。
(原來的答覆)
您必須定義:
- 環境變量
%HOME%
- 把
_netrc
文件%HOME%
如果您使用的是Windows 7
運行CMD 類型的:
setx HOME %USERPROFILE%
和%HOME%將被設置爲 'C:\Users\"username"
'
然後去它 並創建一個名爲 '_netrc
'
注意:對於Windows,您需要'_netrc
'文件,而不是'.netrc
'。
其內容是相當標準(與您的值替換):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke提到的評論:
在Windows 7上使用最新版本的msysgit,我不需要設置HOME環境變量。
_netrc
文件本身就有竅門。
這確實是我在「Trying to 「install
」 github, .ssh
dir not there 」中提到:
git-cmd.bat
列入msysgit並設置%HOME%環境變量:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
愛國者認爲在評論認爲「它似乎不會用於http協議「
但是,我回答說,netrc被curl使用,並且對http協議起作用,如sho在this example(在頁面中尋找'netrc'):。此處還使用http協議:「_netrc
/.netrc
alternative to cURL
」。
與在Windows NETRC支持常見的陷阱是git會繞過如果原點HTTPS URL指定用戶名使用它。
例如,如果你的.git/config
文件包含:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://[email protected]/p/my-project/
的Git將不通過_netrc
解決您的憑據,來解決這個刪除您的用戶名,例如:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://code.google.com/p/my-project/
您還可以安裝Git Credential Manager for Windows在Windows憑證管理器中保存Git密碼而不是netrc。這是存儲密碼
偉大的答案,這是我發現的唯一答案,讓我保持簡單的用戶名/密碼(安全),而不必處理所有的SSH廢話。 – 2012-10-15 17:17:27
@KirkWoll看到我上面的更新答案:您現在可以將您的憑據存儲在加密的'.netrc'文件中。在會議期間,您甚至不需要輸入一次憑證。 – VonC 2013-04-23 12:06:52
這將讓位於https git的認證使用的.netrc
- 該文件應該被命名爲
_netrc
,位於c:\Users\<username>
- 您需要設置一個環境變量更安全的方式調用
HOME=%USERPROFILE%
(使用系統選項在控制面板中設置系統範圍的環境變量,根據Windows的版本,您可能需要選擇「高級選項」) - 存儲在
_netrc
文件中的密碼不能包含空格ting密碼將不起作用)
最簡單,最好的解決方案。像Android Studio,Source Tree和Git命令行一樣工作。當Google推薦Cloud SDK credential.helper選項失敗時,必須使用此功能,並且必須手動生成證書並使用net rc文件。就我而言,我並不需要選項2和3。 – Hari 2016-12-20 02:14:04
發表一個方法使用_netrc
從網站www.course.com.tw下載材料我希望有一些可以幫助你。
如果有人打算使用coursera-dl在www.coursera.com上下載公開課的資料。而在Windows操作系統有人想使用一個文件,如「.netrc中」,這是一樣的Unix操作系統添加的選項,而不是-U -P以convenience.He -n可以這樣做:
檢查Windows操作系統上的主路徑:
setx HOME %USERPROFILE%
(refer: VonC 's answer)。它將將HOME
保存爲C:\Users\"username"
。找到目錄
C:\Users\"username"
並創建一個文件名_netrc
。 注意:沒有任何後綴。 內容是這樣的:machine coursera-dl login <user> password <pass>
像
coursera-dl -n --path PATH <course name>
使用命令下載類材料。 this page的更多課程選項詳細信息。
_netrc必須在Windows中創建,而不是.netrc。它可以存儲在「C:\用戶\」用戶名」
看一看http://nick.txtcc.com/index.php/other/983,給你一個完整的細節
- 1. 如何保存用戶名和密碼?
- 2. 如何在使用UNIX/LINUX的文件上保存密碼?
- 3. 如何用Git保存密碼ssh-agent
- 4. 如何使用Qwebview保存用戶帳戶和密碼
- 5. 設置git和ssh並使用ssh-agent在Windows上使用msysgit存儲密碼
- 6. firefox如何保存用戶名/密碼
- 7. Windows如何管理用戶和密碼?
- 8. Magit保存密碼和用戶名
- 9. 用戶名和密碼不保存
- 10. 保存用戶名和密碼組合
- 11. UIWebView保存用戶名和密碼
- 12. 如何在Windows上運行MKS Toolkit時使用.netrc?
- 13. 在Windows上使用Git-GUI和Git-Bash:* .git文件的位置?
- 14. 使用加密算法來存儲和檢索用戶名和用戶密碼
- 15. 如何在NSUserDefault中保存用戶名和密碼?
- 16. 使用Git GUI窗口 - 你如何保存用戶憑據 - 用戶名和密碼
- 17. 如何使用SharedPreferences來存儲用戶的電子郵件和密碼
- 18. 如何在Liferay 6.1中保存用戶時加密密碼?
- 19. 如何在windows上使用ssh密鑰在linux上創建git?
- 20. 保存未來會話的用戶名和密碼
- 21. 在Windows bat文件使用Zip2Secure,與用戶指定密碼
- 22. Jenkins在Windows Slave上使用密碼的SSH用戶
- 23. 如何使用提供的用戶名和密碼來讀取Java文件
- 24. 是否將php用戶名/密碼保存在php.ini文件中?
- 25. 如何使用用戶名和密碼鎖定Windows程序?
- 26. 如何使用沒有用戶名和密碼的git clone https repository(bash在windows上)?
- 27. 在java文本文件中保存/檢索用戶名和密碼
- 28. 保存用戶名密碼與NSUserDefault,如何和多少安全?
- 29. 保存用戶名和密碼使用目標c
- 30. 如何在UFT中用密碼保存文件
好吧,就試試看感謝 – 2011-05-17 13:14:17
@Bernd:。!了' HOME'環境變量很重要,因爲它在Windows上並未默認定義,您可以將該變量設置爲您想要的任何目錄(它不必是'C:\ users \ mylogin'):例如at工作,我將它設置到與我的Windows帳戶關聯的私人遠程磁盤,這使我可以切換桌面而不必丟失我的'.ssh'或'_netrc'設置。 – VonC 2011-05-17 13:16:18
@Bernd:檢查您的Git倉庫是否在局域網或廣域網(互聯網)服務器,你可能需要在你的環境變量中定義一個'http.proxy',或者相反,將你的服務器添加到'no_proxy' varia可以避免嘗試通過WAN訪問局域網服務器。 – VonC 2011-05-17 13:19:45