如何在同一台电脑操作不同github账户的SSH-KEY
如果你拥有2个或以上的github账号且需要在同一个电脑上进行git操作,下面是我亲测有效的配置流程。
具体步骤如下:
- 针对不同github账号甚至不同的repository生成ssh-key,并添加到电脑中
- 配置ssh-key_pub内容到github账号或项目中。
- 配置电脑.ssh的config文件
- git操作注意事项
1. 生成ssh-key
在terminal使用以下指令生成新的ssh_key。github推荐的是ed25519的方式,如果是老电脑或系统不支持,可以用第2条命令。
在提示保存位置时,要输入完整的路径,比如:/Users/bing/.ssh/id_ed25519_alias
。其中alias用来区别不同账号或者项目的ssh key。
生成后添加ssh key。
ssh-add ~/.ssh/id_ed25519_alias
ssh-add ~/.ssh/id_ed25519_alias2
如果要删除之前添加过的key,则运行ssh-add -D
。
查看已经添加的ssh key,运行ssh-add -l
。
2. 配置ssh key到账号或项目中
如果key用于账号级别,则前往github个人中心-Settings-SSH and GPG Keys界面添加Key;若key用于项目界面,则前往Github项目页面-Settings-Deploy Keys界面添加。
打开ssh key对应的pub文件,内容一般以ssh-ed25519
、ssh-rsa
等开头。
vim ~/.ssh/id_ed25519_alias.pub
复制里面的内容,在添加Key的界面添加保存即可。
3. 配置ssh config
打开~/.ssh/config
文件,若没有则新建一个。
vim ~/.ssh/config
将以下内容配置进去。请注意里面的Host
就是后面实际git操作时要用到的。
# alias account
Host github.com-alias
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_alias
#alias1 account
Host github.com-alias1
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_alias1
这里不能将多个key的Host都设置为github.com
,设置后只有第一个生效。
4. git操作注意事项
在本地项目文件夹里,设置项目的git config。
git config user.name "alias"
git config user.email "alias@example.com"
也可以设置一个全局的,这样不需要每个项目文件都进行配置
git config --globals user.name "alias"
git config --globals user.email "alias@example.com"
下面就是具体的git操作,只有一点需要注意,就是把原始的github项目的ssh链接进行替换。
- 原始链接:git@github.com:username/some.git
- 修改链接:git@github.com-alias:username/some.git
比如我们试着进行一下git pull
操作。
git pull git@github.com-alias:username/some.git
如果是在自带Git功能的IDE里,也需要去修改下里面的git远程链接。修改本地项目的远程链接:
git remote set-url origin git@github.com-alias:username/some.git
参考文档: