當前不少公司都選擇git做爲代碼版本控制工具,而後本身公司搭建私有的gitlab來管理代碼,咱們在clone代碼的時候能夠選擇http協議,固然咱們亦能夠選擇ssh協議來拉取代碼。可是網上不多找到如何用git客戶端生成ssh key,而後配置在gitlab,我當時在作的時候苦於摸索,後來終於找到了解決方案,那麼本文,咱們就來聊一聊如何本地git客戶端生成ssh key,而後配置在gitlab裏,然後使用ssh協議進行提交和拉取git遠程倉庫的代碼。git
打開本地git bash,使用以下命令生成ssh公鑰和私鑰對github
ssh-keygen -t rsa -C 'xxx@xxx.com'
而後一路回車(-C 參數是你的郵箱地址)windows
而後打開~/.ssh/id_rsa.pub文件(~表示用戶目錄,好比個人windows就是C:\Users\Administrator),複製其中的內容安全
打開gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,並把上一步中複製的內容粘貼到Key所對應的文本框,在Title對應的文本框中給這個sshkey設置一個名字,點擊Add key按鈕bash
4. 到此就完成了gitlab配置ssh key的全部步驟,咱們就能夠愉快的使用ssh協議進行代碼的拉取以及提交等操做了ssh
5. 再試一下拉取代碼和提交代碼,應該就不須要輸入密碼了ide
工具
爲公司生成一對祕鑰ssh keygitlab
ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
爲github生成一對祕鑰ssh keyspa
ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
在~/.ssh目錄下新建名稱爲config的文件(無後綴名)。用於配置多個不一樣的host使用不一樣的ssh key,內容以下:
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab_id-rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id-rsa # 配置文件參數 # Host : Host能夠看做是一個你要識別的模式,對識別的模式,進行配置對應的的主機名和ssh文件 # HostName : 要登陸主機的主機名 # User : 登陸名 # IdentityFile : 指明上面User對應的identityFile路徑
OK,大功告成,再次執行git命令驗證是否是已經不須要再次驗證權限了。
再次查看~/..ssh目錄下的文件,會有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四個文件
咱們爲何要使用ssh協議呢?由於ssh更加安全,而後更加方便,好比咱們公司的gitlab由http協議換成了https協議,那麼若是你是使用http協議管理代碼,那麼須要修改全部的項目中的git地址變成https,這會把咱們給逼瘋的!可是若是咱們一開始就是用ssh協議,這不須要任何的修改,簡直不能再爽一點了。