Mac优雅使用指南iOS Developer程序员

多账号配置SSH

2017-12-15  本文已影响0人  小东邪啊

简书地址 : 多账号配置SSH

博客地址 : 多账号配置SSH

掘金地址 : 多账号配置SSH


快捷说明

熟练者忘记查询, 详细解析在下面模块

$ cd ~/.ssh                             // 进入文件夹
$ ssh-keygen -t rsa -C "邮箱地址"       // 配置密钥对
$ ssh-add rsa文件的路径/xxx_rsa          // 添加配置
$ git config --global(local) user.name "你的名字"
$ git config --global(local) user.email "你的邮箱"
$ vim ~/.ssh/config                     // 添加新的账号配置

背景介绍

为什么要配置SSH

作为一个正常上班搬砖程序猿,Git 应该是目前主流的代码管理工具,而Git在提交时有两种方式:Https 和 SH 两种验证方式。

SSH(简单原理说明)

生成一对公钥-私钥,公钥添加到Git服务器,私钥放在本地。提交代码时通过GIT服务器的公钥与本地私钥做验证,如果验证通过则提交成功,简单说就是把账号和密码托管给SSH, 账号就像我们的QQ号码,是公开的可见的,密码只有我们自己知道,本地私钥就是代码我们输入密码的过程,切安全。

1. 生成SSH-KEY

1.1 打开命令行(终端),测试终端是否支持SSH

```
$ ssh -V
```

1.2 生成公钥私钥

```
$ls
xxxGitHub     xxxGitHub.pub
```

2. 单个账号的配置 -- 全局Git配置

大部分人使用Git一般是一个账号

因为一般自己笔记本维护自己的github, 公司电脑维护公司的git, 所以先介绍单个git账号配置

2.1 将生成的SSH-KEY分别配置给服务器和本地。

输入后会校验之前我们在上面 1.2 步骤中设置的密钥密码,校验成功后会提示 Identity added: xxx_rsa (xxx_rsa)

如果设置失败,首先检查当前目录是否为 **~/.ssh**, 然后如果提示如下,请执行`eval $(ssh-agent)` 后再重新添加,如果还不行,请执行`ssh-agent bash`再次尝试添加,如果还有问题请另行查阅,本文主要介绍配置多个ssh.

```
Could not open a connection to your authentication agent.
```

2.2 配置Git全局用户和邮箱:(邮箱为你git对应的邮箱)

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

配置完成后可打开 ~/.gitconfig查看配置

$ vim ./gitconfig

内容大致如下

[user]
    name = xxx
    email = xxx@foxmail.com

此时单个账号配置全部结束

3. 多个Git帐号的配置——局部Git配置

大部分人使用Git一般是一个账号, 所以步骤2中可以完成,但是如果你考虑到以后可能维护多个,或者像本人想在公司电脑里使用公司邮箱的gitlab与自己的github一起,这时就需要配置多个私钥对。

3.1 上面配置ssh密钥对 1.2 时提到起名防止冲突,所以这里不再介绍,反正原则就是一个账号对应一对密钥(xx, xx.pub).

3.2 接下来服务器添加公钥步骤同2.1中添加公钥的步骤,第二部为SSH配置私钥位置时和上面方法不同,我们需要在.ssh文件夹中新建一个config的文件(名字可以自己取,但是不要有冲突和当前目录下), touch config ,然后通过指令vim config进入config文件,键盘敲击小写字母a进入编辑模式,输入如下内容:

Host gitlib.com
    HostName gitlib.com
    User xxx@foxmail.com
    PreferredAuthentications publickey
    IdentityFile id_rsa_gitlib
Host oschina.com
    HostName oschina.com
    User xxx@foxmail.com
    PreferredAuthentications publickey
    IdentityFile /D/Workspace/ssh/id_rsa_oschina
Host 192.168.1.222
    HostName 192.168.1.222
    User xxx@foxmail.com
    PreferredAuthentications publickey
    IdentityFile /D/Workspace/ssh/id_rsa_oschina

注意:

3.3 将所有的id_rsa私钥文件添加到SSH-Agent

3.4 最后,配置局部邮箱
在上面步骤我们配置了全局的邮箱即如果是通过该邮箱的项目ssh的配对已经完成,如果是其他账户的项目则需要进入该仓库文件夹后配置,配置命令如下:

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

配置成功后,我们可以进入项目文件夹下的.git文件夹查看config文件内容,大概内容如下:

...
[user]
    name = xxx
    email = xxx@foxmail.com

此时配置全部结束,请查看下方测试SSH-KEY配置是否成功进行测试。如果配置成功,你就可以clone和commit了。

4. 测试SSH-KEY配置是否成功

$ ssh -T git@github.com
$ ssh -T git@gitlib.com
$ ssh -T git@10.12.22.201
$ ssh-add rsa私钥文件的路径
上一篇 下一篇

猜你喜欢

热点阅读