NM *_*ldo 3 windows git ssh github
我有 2 个 GitHub 帐户,我无法为这两个帐户使用相同的公钥。我已经生成了2个ssh密钥
\n\xe2\x80\xaaC:\\Users\\{User_Name}\\.ssh\\id_rsa\xe2\x80\xaaC:\\Users\\{User_Name}\\.ssh\\id_rsa_another我的问题是,如何在 Windows 上使用多个 ssh 密钥?在Linux上,我只需使用ssh-add命令添加即可,但在Windows上,这个命令不存在。
我做了什么才能使另一个 ssh 密钥工作,我必须将id_rsatoid_rsa_temp和id_rsa_anotherto更改为id_rsa。我知道这很愚蠢。
首先,ssh-add 存在于 Windows 上,作为 Git For Windows 的一部分:
C:\Users\vonc>where ssh-add
C:\Program Files\Git\usr\bin\ssh-add.exe
Run Code Online (Sandbox Code Playgroud)
它需要缓存保护私钥的密码(这并不总是需要的,因为您可以创建没有密码的私钥)
使用不同的帐户,如评论所述,使用 %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
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法测试它们:
ssh -Tv gh1
ssh -Tv gh2
Run Code Online (Sandbox Code Playgroud)
您应该看到每个键都有不同的“欢迎”消息。
用于克隆存储库的 URL 为:
gh1:user1/repo1
gh2:user2/repo2
Run Code Online (Sandbox Code Playgroud)
当且仅当您的 ssh 私钥已加密(受密码短语保护)时,您需要一个 .bashrc 来启动 SSH 代理,并在其中注册您的密钥,从而有效地缓存所述密钥。
请参阅“在 Windows 上的 Git 上自动启动 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
Run Code Online (Sandbox Code Playgroud)
您必须在第一次启动时输入密码,然后不再输入:所述密码将由代理缓存。
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |