生而自由

自由而无用的灵魂

在系统中配置多个git ssh key

Git也用了比较久了,虽然很多高级的用法还没摸着门道,但有些知识还是值得记录的,这里把在系统中配置多个ssh key的方法记录一下,完成后可以为不同的网站启用不同的ssh key,为不同的项目配置不同的username和email。  其实在不同的网站都使用默认的ssh key也没问题,但隔离开来更为清晰安全,也能避免一些将来的误操作。

系统默认配置

在刚使用git时,会先生成一个默认的ssh公私钥对,在Windows上可以直接使用Git GUI来生成, 在*unix和Windows的git bash中也可以使用命令行生成:

ssh-keygen -t rsa -C "a@github.com"

生成后文件被存放为 “~/.ssh/id_rsa”(私钥)   和  “~/.ssh/id_rsa.pub”(公钥)  ,将公钥的内容添加到对应的github/gitlab的个人设置中即可,然后可以通过如下命令行(v应该表示”verbose”,会显示更详细的信息,可以去掉)进行连接及认证测试:

ssh -vT git@github.com

最后再为git配置上默认的username和email即可:

git config –-global user.name "a"
git config –-global user.email "a@github.com"

配置多个ssh key

通过指定文件名称即可生成其它的ssh key:

ssh-keygen -t rsa -C "b@gitlab.com" -f ~/.ssh/gitlab_id_rsa

然后在 ~/.ssh 目录下新建一个名为”config”的文件,添加如下内容:

ServerAliveInterval 60

Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

Host gitlab.com
    HostName bitbucket.org
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id_rsa

这样配置之后,在执行git操作时,会自动根据域名来使用不同的ssh key。

为项目单独设置username和email

最开始已经全局设置了username和email,但是如果在不同的网站使用的是不同的username和email,还需要为项目进行单独设置。 进入项目目录后,执行如下命令即可:

git config user.name "b"
git config user.email "b@gitlab.com"

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注