git 配置多个ssh key

sanlanlan 2019-11-18 标签: git 浏览:924 评论:0

        开发过程中会需要不同的项目需要不同的key,比如一个github,用于自己开发使用,一个gitlab,公司内部的git。这两者你的邮箱不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

所以:在~/.ssh目录下新建一个config文件配置一下,就可以了。

操作步骤:

1.

ssh-keygen -t rsa -C "yourmail@gmail.com" 


2.

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa):

这里不要一路回车,选择在哪里选择存放key路径和名字,比如 id_rsa_github;

接下来如果需要密码就填写密码,不需要密码就一路回车即可。

完成之后我们可以看到~/.ssh目录下多了两个文件

3.
第二个 key  也是一样,
配置不同邮箱
配置不同的key 文件名字,如:id_rsa_gitlab;


4.
创建并修改config文件

# gitlab
    Host git.xxx.com
        HostName git.xxx.com 
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_gitlab
        User zhangsan
    
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    User lisi


HostName是服务器的地址,
User是用户名,
PreferredAuthentications公钥验证,
IdentityFile,文件放在不同跟路径下时,需要写绝对路径 

5.
测试一下:
如果你是Github:
ssh -T git@github.com

如果是你Gitlib:
ssh -T git@gitlib.com


如果你是局域网192.168.11.11:
ssh -T git@192.168.11.11

PS:如果到这里你没有成功的话,可以使用 debug 方法

比如测试github,ssh -vT git@github.com

-v 是输出编译信息,然后根据编译信息自己去解决问题。


6.
如果之前有设置全局用户名和邮箱的话,需要unset一下
git config --global --unset user.name
git config --global --unset user.email

使用:
git config --local user.name "你的名字"
git config --local user.email "你的邮箱"

每个项目单独配置。

如果你只有使用一个key 可以这样配置:
单个key和多个类似,不需要配置config


生成SSH-KEY
ssh-keygen -t rsa -C "xxx@maill.com"

执行以下命名配置Git全局用户和邮箱:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"


本文相关标签: git ssh

发表评论: