熟练者忘记查询, 详细解析在下面模块git
$ 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 // 添加新的帐号配置
复制代码
为何要配置SSHgithub
做为一个正常上班搬砖程序猿,Git 应该是目前主流的代码管理工具,而Git在提交时有两种方式:Https 和 SH 两种验证方式。vim
SSH(简单原理说明)安全
生成一对公钥-私钥,公钥添加到Git服务器,私钥放在本地。提交代码时经过GIT服务器的公钥与本地私钥作验证,若是验证经过则提交成功,简单说就是把帐号和密码托管给SSH, 帐号就像咱们的QQ号码,是公开的可见的,密码只有咱们本身知道,本地私钥就是代码咱们输入密码的过程,切安全。bash
1.1 打开命令行(终端),测试终端是否支持SSH服务器
```
$ ssh -V
```
复制代码
若是支持,可能看到相似如下版本信息:dom
OpenSSH_7.4p1, LibreSSL 2.5.0
复制代码
测试若是不识别SSH,则须要另行安装,Mac默认带有ssh,不须要安装ssh
1.2 生成公钥私钥ide
用命令行进入存放ssh的文件夹,而后输入指令,引号内输入你Git的的邮箱地址工具
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "邮箱地址"
复制代码
接下来会提示:
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
复制代码
生成ras的公钥私钥对
输入保存这个Key的地址,通常直接输入文件名就好(也能够输入绝对路径),即在当前目录下的名字,为了区分通常能够按照用途起名,好比company_xx,以后会提示你输入管理该密钥对的密码,这里会输入两次校验,根据须要本身输入, 完成后即建立成功,会提示相似以下信息
Your identification has been saved in xxxGitHub.
Your public key has been saved in xxxGitHub.pub.
The key fingerprint is:
SHA256:7KVBN59ZHVBky18lBoBnBfhRQXY579Njn6JsYXHm1IA xxx@qq.com
The key's randomart image is: +---[RSA 2048]----+ | s oo*O+B*.| | o + +=o+| | .+o. +=o| | o ..+ B .+| | S .o| | . + o . +| | o . . . =| | .. . ..| | .o. . | +----[SHA256]-----+ 复制代码
此时在终端输入ls,则会看到当前目录已经有了咱们生成好的公钥私钥文件xxxGitHub xxxGitHub.pub, .pub文件便是公钥
$ls
xxxGitHub xxxGitHub.pub
复制代码
大部分人使用Git通常是一个帐号
由于通常本身笔记本维护本身的github, 公司电脑维护公司的git, 因此先介绍单个git帐号配置
2.1 将生成的SSH-KEY分别配置给服务器和本地。
将第一步生成的xxx.pub 公钥中的内容添加到git的SSH中,即在网页上GitHub或Gitlib的设置(setting)中能够找到ssh这个菜单项。
把SSH-KEY配置给SSH,让系统SSH知道这个KEY,若是你是在其余文件夹中生成的密钥对必须 拷贝到~/.ssh文件夹 中,而后输入以下指令,将当前rsa私钥(不带.pub文件) 添加到SSH-Agent.
$ ssh-add rsa文件的路径/xxx_rsa
复制代码
输入后会校验以前咱们在上面 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
复制代码
此时单个帐号配置所有结束
大部分人使用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
复制代码
注意:
HostName是服务器的地址,User是用户名,PreferredAuthentications照抄便可,这里主要说的是IdentityFile,上面咱们看到了三种状况,因此它的书写原则是:
HostName 不可带http或https开头
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了。
$ ssh -T git@github.com
复制代码
$ ssh -T git@gitlib.com
复制代码
$ ssh -T git@10.12.22.201
复制代码
$ ssh-add rsa私钥文件的路径
复制代码