我有多個 Git 帳戶,一個是我個人使用的,一個是供公司使用的。兩個帳戶來源都需要從我的筆記本電腦激活。
第一,我生成了兩個 ssh 密鑰:
% ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/my
% ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/work
2、使用ssh-agent
% eval "$(ssh-agent -s)"
% ssh-add --apple-use-keychain ~/.ssh/my
% ssh-add --apple-use-keychain ~/.ssh/work
3、編輯SSH配置
觸摸~/.ssh/config和編輯如下內容:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/my
IdentityFile ~/.ssh/work
# account of myself, [email protected]
Host my
HostName github.com
User my
IdentityFile ~/.ssh/my
# account of work, [email protected]
Host work
HostName github.com
User work
IdentityFile ~/.ssh/work
4、向我的 GitHub 帳戶添加新的 SSH 密鑰
作為參考:https ://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-代理人
5、確保 ssh-agent 正在運行并加載這兩個密鑰
% ps -e | grep ssh-agent
% ssh-add -l
256 SHA256:RnbFaLfrSIX4Al134lkjaleiur1SMIz7 OFwx5I9RHVMewwo9eq [email protected] (ED25519)
現在我的問題是: 重新啟動 macOS 后,只有一個 ssh 密鑰,我必須通過以下命令手動激活另一個 ssh 密鑰才能作業:
% ssh-add ~/.ssh/work
% ssh-add -l
256 SHA256:RnbFaLfrSIX4Al134lkjaleiur1SMIz7 OFwx5I9RHVMewwo9eq [email protected] (ED25519)
256 SHA256:QEWRrqpeowiufkndliuroqijr15u30491u3ojhjkrefaosdyflk [email protected] (ED25519)
當我處理作業存盤庫(如~/workcode)時,我無法切換到作業 ssh 鍵,但我可以找到正確的回應,% git remove -v但是當我運行% git push如下時得到錯誤的資訊:
ERROR: Permission to work/Test.git denied to my.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
當我為自己作業或為公司作業時,請指導我如何切換到my或ssh 密鑰。work
謝謝你。
uj5u.com熱心網友回復:
你可以先修改~/.ssh/config如下:
Host *
UseKeychain yes
AddKeysToAgent yes
# account of [email protected]
Host mysec
HostName github.com
User git
IdentityFile ~/.ssh/mysec
# account of [email protected]
Host work
HostName github.com
User git
IdentityFile ~/.ssh/work
% ssh-add -l
如果您想通過私人帳戶或作業帳戶推送代碼,請檢查run加載的當前ssh ,您可以運行
% ssh-add -D
這將從代理中洗掉所有身份。然后您可以通過以下方式加載所需的 ssh 密鑰:
% ssh-add ~/.ssh/my或者% ssh-add ~/.ssh/work
即使您加載了兩個 ssh 密鑰,也只有一個 ssh 密鑰效果,因此請僅加載一個 ssh 密鑰供您推送。
uj5u.com熱心網友回復:
要使用的 ssh 帳戶應該git在這兩種情況下:User git.
正如檔案的“測驗”部分所建議的那樣:通過運行:ssh my/ ssh work(或ssh git@my/ssh git@work以明確傳遞用戶帳戶以進行連接)來測驗您的 ssh 配置。
AFAIK,您不需要ssh-agent在啟動時顯式加載密鑰,第一個 ssh 連接會這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486240.html
上一篇:我怎樣才能結合命令離開和說?
