git 配置多个ssh key

2 篇文章 0 订阅

最近多个项目需要为不同的git配置不同的ssh key。
以添加多个github的ssh key为例。

创建多个ssh key

创建一个ssh key

$ ssh-keygen -t rsa -C "1email@github.com” -f ~/.ssh/id_rsa_personal

创建第二个ssh key,命令相同,但有一点不同

$ ssh-keygen -t rsa -C "2email@github.com” -f ~/.ssh/id_rsa_company

添加公钥

添加私钥

ssh-add ~/.ssh/id_rsa_company
ssh-add ~/.ssh/id_rsa_personal

如果执行ssh-add时提示Could not open a connection to your authentication agent,就先执行

$ ssh-agent bash

然后再重新运行ssh-add命令。
成功后如下图所示:
在这里插入图片描述

查看私钥列表

$ ssh-add -l

在这里插入图片描述

清空私钥列表

$ ssh-add -D

添加key到github

登录github或你的代码托管平台。右上角你的账号登录个人信息处,点击settings
在这里插入图片描述
点击SSH-keys
在这里插入图片描述
在这里插入图片描述
点击 Add Key,完成添加
这里插入图片描述

创建并修改config文件

在windows下新建一个txt文本,然后改名为config,注意没有后缀
内容如下:

company github

Host company.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company
User git

personal github

Host personal.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
User git

配置文件说明

Host : 自定义名称,任意字符串,可以看作识别码
HostName : 要登录主机的主机名,一定要是有效的,比如github.com
User : 只填git就成
IdentityFile : ssh key文件路径
Port: 端口号(如果不是默认22号端口则需要指定)

如果我要clone 个人代码库,就执行

git clone git@personal.github.com:USERNAME/PROJECT.git

git库会被如此翻译

git@${Host}:USERNAME/PROJECT.git  # ${Host}会被替换为HostName

例如https://github.com/Kitware/CMake.git

测试

$ ssh -T git@github.com
PS:如果到这里你没有成功的话,别急,教你解决问题的终极办法–debug
比如测试github,ssh -vT git@github.com
-v是输出编译信息,然后根据编译信息自己去解决问题吧。就我自己来说一般是config里的host那块写错了

补充一下
如果之前有设置全局用户名和邮箱的话,需要unset一下

git config --global--unsetuser.name
git config --global--unsetuser.email

然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的repository下

git config user.name "yourname"  
git config user.email "youremail"

在自己的github的仓库在执行刚刚的命令一遍即可。
这样就可以在不同的仓库,已不同的账号登录。

参考1
参考2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值