熟練者忘記查詢, 詳細解析在下面模塊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私鑰文件的路徑
複製代碼