一台电脑配置多个ssh key(不同的多个邮箱ssh key,多git账号,智能选择对应的ssh key)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yimingsilence/article/details/79980135

同一个人在不同电脑上用不同的账户同步同一个git库代码完全没有问题

多个人同一台电脑上有多个git库用不同git账号同一个ssh key同步一个或多个git库代码也没有问题

如果多个人用同一台电脑,且需要不同的认证或同一个电脑连接两个不同的github账号(多个ssh key对应不同的git库且能智能选择)

这里的git库可能是同一个服务的库(多个github库),可能是多个完全不同的库(github有,gitlab也有,公司的还有)


重要:如果只是想要不同的git邮箱和用户名只需要在每个git的工程里面的配置文件中修改即可,就是不要配置全局的。看清自己的需求是否是上面描述的是否需要下面的操作。



1. 生成多套ssh key

ssh-keygen -t rsa -C "不同的邮箱们"

这里不同于默认全部回车直接生成id_rsa,这里要给不同的git账号(邮箱)起不同的名字,比如id_rsa_github,别的没区别。这样就会有多套key

2. 让这些key生效,ssh-add -K ~/.ssh/id_rsa 不知道重启要不要重新弄。。。

如果出现Could not open a connection to your authentication agent.

先这个:ssh-agent bash(win下的话eval `ssh-agent`)

可以用这个删除所有key:ssh-add -D

查看key的情况:ssh-add -l

2. 不同的id_rsa.pub同样需要添加到各自的网站里面哈

3. 修改ssh config文件

如果没有就创建。~/.ssh/config

内容是这样的,对于每一个git账号(邮箱)都是这样,有几个账号就写几套这个东西:

Host github.com # 主机名字,这个随便起一个名字就好了

HostName github.com # 主机名,有域名的写域名,没域名的写ip,如果写ip下面可以加一条Port 22这种端口信息。

User git # 用户名,这个其实要看你的git的ssh协议的用户名,一般是git,也可能是别的

IdentityFile ~/.ssh/id_rsa.pub # 公钥文件,这个就要对应写上刚刚生成的那些个公钥。

4. 删除本地全局设置

如果之前设置过git config -global user.name 和 user.email要用git config -global unset user.name  和 user.email删除掉,或者直接把用户目录下的.gitconfig文件删除,然后为每个仓库设置独立的用户名和邮箱,就是在仓库里面用上面的命令不要global选项

5. 非常重要:

以上步骤我在我的电脑上重复了多次都没有成功,看了所有的教程发现我的做法好像没有问题,但是不知道为什么,有大大可以指教的话指教一下,不过当然我其实没有这种需求,所以果断先放下这个,好好工作。


展开阅读全文

没有更多推荐了,返回首页