更好的管理你的git SSH-Key

日常工作中,我们经常碰到又想写公司的项目,又想自己维护自己的项目,公司的项目基本都在gitlab上,自己的项目在github上,所以我们需要配置不同的SSH-Key来对应不同的环境。

1. 设置一个默认的全局name和email

git config --global user.name "your name"
git config --global user.email "your email addr"

如果不设置这个,已经clone过的每个项目都需要去手动设置一下归属到哪个账户(当然,如果你是用那个clone下来的倒没事,像我是已经clone过了,不得不设置啊)

2. 生成SSH-Key

$ ssh-keygen -t rsa -C "your company email" -f ~/.ssh/id_rsa

一般都叫id_rsa,第一个先弄公司的好了,然后再对应的公司的账户下边加上id_rsa.pub里的内容
再生成github的SSH-Key:

$ ssh-keygen -t rsa -C "your github email" -f ~/.ssh/my_rsa

同上,把my_rsa.pub里的内容加到github服务器的配置中。

3. 添加私钥

$ ssh-add ~/.ssh/id_rsa 
$ ssh-add ~/.ssh/my_rsa

上面一步执行如果失败,并且提示的是"Could not open a connection to your authentication agent",执行:

$ ssh-agent bash

添加成功过后,可以执行下面这条查看结果

$ ssh-add -l

4. 修改host配置

打开~/.ssh里的config文件(如果没有就新建一个,没有后缀名)
加上以下内容:

# gitlab
Host gitlab.com
    HostName 公司gitlab地址
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
    User 你想要的名字
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_rsa
    User 你github要显示的名字

测试一下:

$ ssh -T git@github.com

也可以试试公司的网址,如果出现Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.就可以了。

5. 对应账号

如果已经设置了global的用户名和email,就得到不想用默认账户对应的项目文件夹下执行

$ git config user.name "your github name"
$ git config user.email "your github email"

这样就可以使用github的账号了。如果不想有默认的而且设置过,可以执行

$ git config --global --unset user.name
$ git config --global --unset user.email

6. 对于本博客的修改

在博客目录下边的.deploy_git下边里有config文件,这是hexo提交的时候对应的config文件,可以把.git下边的config里的user拷过来,顺便把这个url改成ssh的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容