本机配置多个 SSH key
我们会有很多种 git 的使用场景,比如 github,公司代码,或者是其它代码托管平台,这个时候就会需要在本机配置多个 SSH key 。
解决方案
当已配置好 github ssh key,但还需要配置公司 ssh key 时(本机 windows 示例)
-
生成第二个 ssh key
我们打算还是在 .ssh 下生成密钥对
Shuaiyin@AG MINGW64 ~/.ssh $ ssh-keygen -t rsa -C "xxx@company.com" Generating public/private rsa key pair. # 这里不要直接回车,键入正确的目录,然后输入密钥文件名,防止被覆盖原有密钥,易于区分 Enter file in which to save the key (/c/Users/Shuaiyin/.ssh/id_rsa): /c/Users/Shuaiyin/.ssh/id_rsa_company # 然后一直回车
完成之后就会发现生成 私钥:id_rsa_company 公钥:id_rsa_company.pub
-
打开 ssh-agent 代理转发
eval `ssh-agent -s`
-
通过 ssh-add 将私钥添加至 ssh-agent
ssh-add id_rsa_company
-
在 ~/.ssh 文件夹中创建 config 文件
添加一下内容
# github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github User Shuaiyin # company Host 111.111.111.11 HostName 111.111.111.11 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_company User Shuaiyin
Host
和HostName
是指定 git 服务器的域名,IP 也是可以的(这里我是乱写的,你可以依据公司的域名或 IP 来写)IdentityFile
是私钥的路径 -
将 id_rsa_company.pub 公钥内容填入公司 git 服务中
-
测试
-
测试公司密钥
ssh -T git@111.111.111.11
-
测试 github 密钥
ssh -T git@github.com
-
Tips:
如果以前 git 已经设置好了全局用户名和邮箱的话,需要 unset 清空
git config --global --unset user.name
git config --global --unset user.email
然后在公司项目 repository 中设置局部的用户名和邮箱
git config user.name "yourname"
git config user.email "youremail"
这样就可以在不同的项目场景中,使用不同的用户名和邮箱了
本文由 Shuaiyin 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Sep 18,2019