Password

如何為不同的 git repos 設置使用者名和密碼?

  • April 5, 2022
─[$] cat ~/.gitconfig

[user]
   name = Shirish Agarwal
   email = xxxx@xxxx.xxx
[core]
   editor = leafpad
   excludesfiles = /home/shirish/.gitignore
   gitproxy = \"ssh\" for gitorious.org
[merge]
   tool = meld
[push]
   default = simple
[color]
   ui = true
   status = auto
   branch = auto

現在我想將我的 git 憑據放入 github、gitlab 和 gitorious,這樣每次我不必在瀏覽器上查找憑據。如何做到這一點,使其自動化?

我正在執行 zsh

使用 SSH

處理 git 身份驗證的常用方法是將其委託給 SSH。通常,您在遠端儲存庫(例如 在 GitHub 上)中設置您的 SSH 公鑰,然後在需要驗證時使用它。當然,您可以使用密鑰代理,由您的桌面環境處理或手動使用ssh-agentand ssh-add

為避免必須指定使用者名,您也可以在 SSH 中進行配置,在~/.ssh/config; 例如我有

Host git.opendaylight.org
 User skitt

然後我可以使用複製

git clone ssh://git.opendaylight.org:29418/aaa

(注意那裡沒有使用者名)。

使用gitcredentials

如果 SSH 方法不適用(例如,您正在使用通過 HTTPS 訪問的儲存庫),git 確實有自己的方式來處理憑據,使用gitcredentials(並且通常git-credential-store)。您使用指定您的使用者名

git config credential.${remote}.username yourusername

和憑證助手使用

git config credential.helper store

(指定--global是否要在任何地方使用此設置)。

那麼當你第一次訪問一個倉庫時,git 會詢問你的密碼,並且它會被儲存(預設在~/.git-credentials)。對儲存庫的後續訪問將使用儲存的密碼,而不是詢問您。

警告:這確實將您的憑據明文儲存在您的主目錄中。因此,除非您了解這意味著什麼並且對風險感到滿意,否則這是不可取的。

引用自:https://unix.stackexchange.com/questions/335704