首先,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 代理,并在其中注册您的密钥,从而有效地缓存所述密钥。
See "在适用于 Windows 的 Git 上自动启动 ssh-agent https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases#auto-launching-ssh-agent-on-git-for-windows"
你可以运行ssh-agent
当您打开 bash 或 Git shell 时自动。
复制以下行并将其粘贴到您的~/.bashrc
(%USERPROFILE%/.bashrc
) Git shell 中的文件:
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
您必须在第一次启动时输入密码,然后不再输入:所述密码将由代理缓存。