Git本地配置多个SSH-Key公钥登录


背景

当一台工作电脑需要通过SSH-Key方式登录多个git账号时,比如:

a. 一个mygit,用于公司内部比较隐私的工作开发;

b. 一个gitee,用于公司内部普通的工作开发;

c. 一个github,用于自己进行一些公开的分享的开发活动;

 Git服务器部署在Linux服务器上。

 

解决方法

1. 生成一个公司用的mygit的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@company.com'  -f  ~/.ssh/mygit_id_rsa

2. 生成一个公司用的gitee的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@company.com'  -f  ~/.ssh/gitee_id_rsa

3. 生成一个github用的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@qq.com'  -f  ~/.ssh/github_id_rsa

 

4. 在用户目录 ~/.ssh 目录下新建一个名为config的文件,添加如下内容

# mygit Host 192.168.80.129 PreferredAuthentications publickey IdentityFile ~/.ssh/mygit_id_rsa # gitee,Host值为域名或者ip(必填);HostName值为域名或者ip(非必须);User值可任意(非必须) Host gitee.com HostName gitee.com User gitee PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa

5. 把.pub文件中的公钥字符串复制到对应平台(公钥文件.pub 可以删掉)。

    对于公司内部搭建的git服务器,则复制到用户目录 ~/.ssh/authorized_keys 文件中(该文件如果没有,则需要手动创建)

    

6. 用ssh命令分别测试

$ ssh -T git@192.168.80.129
$ ssh -T git@gitee.com
$ ssh -T git@github.com

这里以gitee为例,成功的话会返回下图所示

 

ssh-keygen命令介绍:

格式:ssh-keygen  -t  rsa  -C  root@localhost  -f  ~/.ssh/id_rsa  -P  <密码>

-t:指定生成密钥类型(rsa、dsa)。默认为rsa

-f:指定存放私钥的文件名,默认为id_rsa。公钥文件名默认为私钥文件名加.pub后缀。~:代表用户目录。

-P:指定passphrase(私钥的加密密码),用于确保私钥的安全。默认为空。

-C:备注(非必须,可任意写)。默认为user@hostname。建议填写邮箱地址:youremail@example.com

 

PS:1. 密钥对是特殊的密码对,用于linux用户登录时的鉴权。
           私钥(比较隐私)放在本地,公钥字符串则手动复制到公司的linux服务器的用户目录 ~/.ssh/authorized_keys 文件中(需要手动创建)
           登录时就基于某用户名和密钥指纹进行私钥公钥的成对匹配,匹配通过则允许登录。

        2.一般情况下,本地客户端可以使用同一个密钥(私钥),同时登陆gitee网站(仅限一个用户)、github网站(仅限一个用户)、公司git服务器(一个git用户)。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM