我見過一些類似的問題(實際上已經嘗試過我見過的每一個問題的解決方案),但沒有一個能解決這個問題。本質上,我想推送到兩個不同的 Github 帳戶,而不是每次都更改我的組態檔。
我正在嘗試從同一個系統推送到兩個不同的 Github 帳戶,都使用 SSH。我正在通過 VSCode 使用 WSL。ssh -T適用于我的兩個 RSA 檔案,兩個 Github 帳戶都有相應的 SSH 密鑰,當我的.ssh/config檔案對每個檔案都有特定設定時,我可以推送到每個帳戶。
我的.ssh/config檔案如下所示:
# Personal Account
Host github.com-user1
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# Work Account
Host github.com-user2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_user2
照原樣,推送到帳戶user1作業正常,但嘗試推送到帳戶user2會出錯:
ERROR: Permission to user2/repo.git denied to user1.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
但是,如果我將第二節(#Work Account)的第一行更改為 just Host github.com,我可以突然推送到帳戶 user2!我只是...無法推送到 user1。我得到了上述錯誤的相反,現在Permission to user1/repo.git denied to user2.
我嘗試過:
將兩者都設定為Host github.com,但這會使我回到原來的問題(只能以 user1 身份推送。)
似乎它只是在.ssh/config它看到的檔案中選擇第一節(同時優先考慮Host github.com),但我需要它來回應我從哪個帳戶推送。
git config user.name并user.email為每個回購設定正確的值。User2 使用本地配置,而 User1 使用全域配置,但我認為這不是問題,因為我無需調整即可推送到兩者。
我已經在這兩個節中添加了PreferredAuthentications publickey和IdentitiesOnly yes,以及我在其他人的此檔案配置中看到的其他一些節,但沒有一個更改了獲取輸出的錯誤。
Control Panel > Manage Windows Credentials 沒有與之關聯的 GitHub 憑據(我檢查過,沒有任何憑據,沒有任何內容被更改/洗掉)
uj5u.com熱心網友回復:
一旦您在 中設定了該節~/.ssh/config,您就需要更改每個遠程名稱以使用github.com-user1或github.com-user2用作 SSH URL 中的主機名。這是讓它可靠作業的唯一方法,您可以origin通過運行來更改現有的遠程(例如)URL git remote set-url NEW-URL。
另請注意,您還需要IdentitiesOnly yes每個節中的選項。
這記錄在Git FAQ中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418239.html
標籤:
