如果你在github有多个帐户。那要在不同的帐户之间切换SSH Key。可以config来配置SSH key
假设你有两个private key文件为 id_rsa1 和 id_rsa2
生成ssh key的命令如下:
1
ssh-keygen -t rsa -C "youremail"
在git bash下
1
2
3
cd ~/.ssh
touch config
#打开config 如果你用的是vim 可以 vim config
打开后编辑如下:
1
2
3
4
5
6
7
8
Host firstkey
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa1
Host secondkey
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa2
注意 Host是你的 git的SSH地址对应的地址。 也就是说 git@firstkey:yourname/your.git 这样就会找到Host 为firstkey的key了
只需要把原先的git@github.com 改为git@firstkey 就可以了,更改远程地址的命令:
1
2
git remote set-url [name] [url]
git remote set-url --push [name] [url]
还要把key加入到ssh-agent中,命令如下:
1
2
3
4
5
ssh-add ~/.ssh/id_rsa1
ssh-add ~/.ssh/id_rsa2
#该命令如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent
#可先执行
eval "ssh-agent -s" 或者 ssh-agent bash
例子:
在同一机器不同目录下克隆远程同一个repo 1
2
3
git clone git@firstkey:xxx.git
git clone git@secondkey:xxx.git
上面的两条clone命令,虽然关联到同一个repo,却是通过不同ssh连接,当然也是不同的git账号。