GIT 修改用戶名和密碼

1、概述

如果你使用GIT的SSH 方式連接遠端,並且設置了一個沒有口令的祕鑰,這樣就可以砸不輸入用戶名和密碼的情況下安全地傳輸數據。然而,這對 HTTP 協議來說是不可能的 ---- 每一個連接都是需要用戶名和密碼的。但是這樣使用就比較麻煩,而 GIT 提供了一個憑證系統來處理這個事情。

2、GIT 提供的憑證系統

GIT 提供的憑證系統,會有四種模式,分別是默認模式、cache(緩存)、store(磁盤存儲)、及keychain(鑰匙串)。
默認模式:所有的都不緩存,每一次都會詢問你的用戶名和密碼。
cache:會把憑證存放在內存中一段時間。密碼永遠不會被存儲在磁盤中,並且在15分鐘後從內存中清除。
store:會將憑證用明文的形式存放在磁盤中,並且永不過期(除非你修改了你在Git服務器上的密碼)。缺點就是密碼是明文保存的。
keychain:它會將憑證緩存到你係統用戶的鑰匙串中,跟store的區別是它會對密碼進行加密。在Mac 下,是"osxkeychain" 模式,在 windows 下,是"winsotre" 模式。

我們可以設置 GIT 的配置來選擇上述一種方式

git config --global credential.helper cache

其中的一些模式可接受一些選項。如"store" 模式可接受一個 --file 參數,可自定義存放密碼的文件路徑(默認是 ~/.git-credentials)。“cache” 模式有 --timeout 參數,可設置後臺進程存活時間。

GIT 允許配置多個模式。當查找特定服務器的憑證時,GIT會按順序查詢,並且在找到第一個回答時停止查詢。當保存憑證時,GIT會將用戶名和密碼發送給 所有 配置裏表中的模式工具,它們會按自己的方式處理用戶名和密碼。如果你在閃存上有一個憑證文件,但又希望在該閃存被拔出的情況下使用內存緩存來保存用戶名密碼,.gitconfig 配置文件如下:

[credential]
	helper = store --file /mnt/thumbdrive/.git-credentials
	helper = cache --timeout 30000

查看可用命令

git config credential.helper

3、修改用戶名和密碼

能修改密碼的只有 store 和 keychain 模式。對於 store 我們找到它的文件打開進行修改就好了,這裏主要說一下 keychain 模式。

對於我們輸入的用戶名和郵箱賬號,都存儲在 .gitconfig 文件中,我們很簡單的就能找到(C:\用戶\username.gitconfig)。

但對於密碼就有點麻煩,其實找到系統的鑰匙串憑證的地方就可以了。

對於windows,其憑證在 “控制面板->憑證管理器->Windows憑證”下,找到相應的git配置就可以了

在這裏插入圖片描述

對於mac,我估計也是一樣的,但是我沒有蘋果本,沒法驗證了。

感謝大家,我是假裝很努力的YoungYangD(小羊)

參考資料:GIT官網文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章