Github

如何停止 github 總是詢問使用者名/密碼?

  • November 13, 2019

我有我的鑰匙在~/.ssh/其他電腦上,我可以從有問題的回購中推拉。

為什麼在一台電腦上我總是需要輸入我的 github 使用者名/密碼,而在其他電腦上卻不需要?

我可以改變什麼來避免這種情況並改用我的 ssh 密鑰?

這可以通過將身份驗證協議方法從 https 更改為 ssh 來更改

一種選擇是重命名或刪除現有儲存庫,然後使用不同的方法“重新複製”。因此,在mving 或rm -ring 目前 repo 之後,複製命令將類似於

git clone git@github.com:user_name/repo_name.git

您可以使用以下git config -l命令查看兩種方法的區別:

對於 https:

...
remote.origin.url=https://github.com/user_name/repo_name.git
...

對於 ssh

...
remote.origin.url=git@github.com:user_name/repo_name.git
branch.master.rebase=true  # This was also created in the ssh method

...

您可以看到.git/config每個 repo 的文件中的差異:

請注意下面“url”的變化。加上rebase = true在 ssh

http

[core]
 repositoryformatversion = 0 
 filemode = true
 bare = false
 logallrefupdates = true
[remote "origin"]
 url = https://github.com/user_name/repo_name.git
 fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
 remote = origin
 merge = refs/heads/master

SSH

[core]
 repositoryformatversion = 0 
 filemode = true
 bare = false
 logallrefupdates = true
[remote "origin"]
 url = git@github.com:user_name/repo_name.git
 fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
 remote = origin
 merge = refs/heads/master
 rebase = true

因此,如果您只想更改身份驗證方法而不“重新複製”整個儲存庫,您只需編輯項目.git/config並更改

 url = git@github.user_name/repo_name.git

 url = https://github.com/user_name/repo_name.git

加加

rebase = true

在底部,在“ [branch "master"]”部分

最簡單的方法是創建一個~/.netrc包含以下內容的文件:

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(如圖所示: https ://gist.github.com/ahoward/2885020 )

您甚至可以關閉此文件的權限,這樣任何人都無法通過鍵入以下內容讀取您的密碼:

chmod 600 ~/.netrc

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