我有 2 個 GitHub 帳戶,我不能為兩個帳戶使用相同的公鑰。我已經生成了 2 個 ssh 密鑰
?C:\Users\{User_Name}\.ssh\id_rsa?C:\Users\{User_Name}\.ssh\id_rsa_another
我的問題是,如何為 Windows 使用多個 ssh 密鑰?在Linux上,我只需要使用ssh-add命令添加,但在Windows上,此命令不存在。
我做了什么才能使其他 ssh 密鑰作業,我必須將id_rsatoid_rsa_temp和id_rsa_anotherto更改為id_rsa. 我知道這很愚蠢。
uj5u.com熱心網友回復:
首先,ssh-add 存在于 Windows 上,作為 Git For Windows 的一部分:
C:\Users\vonc>where ssh-add
C:\Program Files\Git\usr\bin\ssh-add.exe
需要快取保護私鑰的密碼(并不總是需要,因為您可以創建沒有密碼的私鑰)
使用不同的帳戶,如所評論的,使用 %USERPROFILE%.ssh\config 檔案,其中包含:
Host gh1
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa
Host gh2
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_another
您可以使用以下方法測驗它們:
ssh -Tv gh1
ssh -Tv gh2
您應該會看到每個鍵不同的“歡迎”訊息。
用于克隆您的存盤庫的 URL 將是:
gh1:user1/repo1
gh2:user2/repo2
如果且僅當您的私人 ssh 密鑰已加密(受密碼保護),則您需要一個 .bashrc 來啟動 SSH 代理,并在其中注冊您的密鑰,從而有效地快取所述密鑰。
請參閱“在 Git for Windows 上自動啟動 ssh-agent ”
可以
ssh-agent在打開 bash 或 Git shell 時自動運行。
復制以下幾行并將它們粘貼到Git shell 中的~/.bashrc(%USERPROFILE%/.bashrc) 檔案中:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
ssh-add ~/.ssh/id_rsa_another
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
ssh-add ~/.ssh/id_rsa_another
fi
unset env
您必須在第一次啟動時輸入密碼,然后不再輸入:所述密碼將被代理快取。
uj5u.com熱心網友回復:
最后,我找到了解決方案
我必須使用Git Bash,因為在運行此命令時我無法使用常規的 Windows 終端
$ eval $(ssh-agent -s)
然后我可以通過運行這個命令來添加 SSH 密鑰
$ ssh-add C:/Users/{User_Name}/.ssh/id_rsa_another
我們必須使用正斜杠作為路徑
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/367709.html
