我需要更改 GitHub 用于在我的本地計算機上克隆和訪問存盤庫的 ssh 密鑰。
例如,默認使用 /c/Users/xxx.xxx/.ssh/id_ed25519。但我需要它來使用 /c/Users/xxx.xxx/.ssh/id_rsa_github
有什么方法可以更改該配置嗎?
uj5u.com熱心網友回復:
有——但首先,我們應該理清你的問題。使用 ssh 密鑰的不是GitHub 。它是使用 ssh 密鑰的 ssh 。所以要看的地方是ssh的配置。
一些 ssh 配置細節取決于作業系統,但幾乎所有 ssh 實作都將使用.ssh主目錄(檔案夾)中的隱藏檔案夾(目錄)。在這個.ssh,你會發現幾個普通的檔案:
known_hosts包含您之前連接到的主機的指紋串列。authorized_keys,如果存在,則包含某人可以用來登錄您的機器的密鑰串列(如果您的機器完全允許登錄)。id_rsa并id_rsa.pub包含用于 RSA 加密的默認私鑰和公鑰。id_ed25519并id_ed25519.pub包含 ED25519 加密的默認私鑰和公鑰。config包含您的個人 ssh 配置。 這是您要調整的檔案。
該config檔案主要由行集組成,行集以行開頭Host。該Host行定義后續行適用于哪些名稱。所以要使事情適用于命令:
ssh github.com
例如,你可以寫成Host github.com一行。
在該行下方Host(通常作為視覺線索進一步縮進)您將添加更多配置行,例如:
User git
IdentityFile ~/.ssh/id_rsa_github
IdentitiesOnly yes
該User git行(如果存在)設定默認用戶名。這是可選的,但您不必git@在github.com.
該IdentityFile行給出了與此主機一起使用的密鑰的路徑名(實際上是密鑰對:一個檔案通常命名whatever.pub,另一個檔案命名為 )。whatever既然你說你想id_rsa_github使用,那就是我們在這里給出的名字;告訴 ssh在目錄中~/.ssh/找到它。(您可以在 Windows 上使用反斜杠,但正斜杠更容易鍵入,并且可以在任何地方使用,所以這就是我要做的以及我在這里展示的內容。).ssh
這IdentitiesOnly yes條線很重要,但通常不是很重要:它告訴 ssh,盡管它可能在“密鑰環”上找到許多密鑰(例如,通過 SSH 代理提供,ssh-add使用只github.com使用這一個特定的鍵。這很重要的原因與 ssh 在 GitHub 上的作業方式有關。
ssh 公鑰身份驗證如何與 GitHub 配合使用
每當你要求登錄 GitHub 時——無論是使用 https 還是 ssh,在瀏覽器中,還是因為 Git 確實在運行 ssh 以訪問 GitHub 上的存盤庫——你必須向 GitHub 提供兩條(或有時更多)資訊:
- 你聲稱自己是誰?
- 你有什么證據證明你就是這個人?
使用 https 時,這非常簡單,因為您發送一個用戶名來說明您聲稱自己是誰,然后發送一個授權令牌(基本上是一個虛構的密碼)來證明您就是那個人。但是,在使用 ssh 時,您需要聲稱自己是gitssh 級別的人。您不會在此處發送您的實際用戶名!
相反,為了提供用戶名,GitHub 保留了一個巨大的用戶名和公鑰表。提供 namegit后,GitHub 現在通過他們的 ssh 服務器要求一個公鑰。您的 ssh 代碼四處尋找可能在此“門鎖”上使用的所有公鑰。在您命名的檔案中,也許只有一個鍵。也許有數百個密鑰,在 OSX 鑰匙串上,或在 SSH 代理中,或在 Windows 鑰匙串中,或其他任何東西:有很多可能性。
您的 ssh 將開始從允許的串列中一次提供一個公鑰,直到 GitHub 識別其中一個。該公鑰附加了一個用戶名,位于 GitHub 上的一個表中。然后他們說:好的,我看到你自稱是_____(填空),現在證明一下。這是一個秘密挑戰,當且僅當您也擁有私鑰時,您才能回復。 然后,您的 ssh 使用您的私鑰解密挑戰,并正確回應,現在他們知道您持有這兩個密鑰,因此就是您聲稱的那個人。
但你聲稱自己是誰?你聲稱自己的公鑰被使用了。如果您有多個可用的公鑰,那么您只是聲稱自己是這幾個身份之一。這就是你想要的身份嗎?如果是這樣,太好了!如果沒有,那就糟糕了!
該IdentitiesOnly行告訴 ssh 它應該只嘗試這些行中列出的公鑰。這樣,您可以在 GitHub 上擁有兩個或多個公鑰,一個用于作業身份,一個用于個人專案,并且您可以控制提供哪些公鑰。
(要使多個身份起作用,您只需定義多個身份Host:例如,您可以定義 aHost gh-work和 a Host gh-home。但我們將把它留給其他問題。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488181.html
