詳解:爲GitHub、Gitlab帳號同時添加、管理多個SSH-Key

GitHubGitLab是目前最流行的代碼託管平臺,前者經常用於我的代碼託管,然後者經常使用於企業代碼託管。所以在實際工做中,咱們一般會在同一臺電腦設備上,使用這兩個平臺進行代碼託管。git

SSH-Key是這兩個平臺的密鑰認證方式,爲本身的電腦添加密鑰認證,能夠更加簡單、高效、安全地完成代碼託管的工做。github

本文將詳細講解如何在同一臺電腦上爲兩個平臺添加不一樣的SSH-Key,而且管理這些密鑰。安全

實例講解

1. 註冊帳號

用本身的郵箱註冊GitHubGitlab帳號,註冊過程忽略。bash

在這裏插入圖片描述

在這裏插入圖片描述

2. 下載Git

Git安裝包網址ssh

在這裏插入圖片描述

進入網站下載本身電腦對應的版本、直接安裝便可。gitlab

安裝完成後,在CMD中輸入下面的代碼,查看Git的版本號。測試

git -- version
複製代碼

在這裏插入圖片描述

3. 生成SSH-Key

打開GitBashGit安裝成功後會自動在鼠標右鍵添加GitBash)輸入如下命令生成密鑰。網站

在這裏插入圖片描述

ssh-keygen -t ed25519 -C "email@example.com"  -f ~/.ssh/gitlab_id_rsa

ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa

email@example.com 表明註冊Gitlab帳號時用的郵箱

-f 表明文件名

~/.ssh/ 表明ssh的文件路徑

gitlab_id-rsa 表明ssh文件名(能夠自定義)
複製代碼

在這裏插入圖片描述

在這裏插入圖片描述

到這裏,咱們就生成了一個Gitlab的密鑰,GitHub密鑰的生成方式同上。ui

4. 添加SSH-Key

複製密鑰的方式有兩種。加密

  1. 輸入cat ~/.ssh/ssh文件名 | clip ,例如cat ~/.ssh/gitlab_id_rsa.pub | clip,複製ssh key。

  2. 直接用記事本打開gitlab_id-rsa.pub,複製SSH-Key

複製好對應平臺的密鑰後,就能夠到對應平臺的SSH-Key中添加密鑰了

在這裏插入圖片描述

在這裏插入圖片描述

5. 測試密鑰

添加完SSH-Key後,咱們須要測試密鑰是否可用,以GitHub爲例,在GitBash中輸入如下的命令。

ssh -T git@github.com
複製代碼

在這裏插入圖片描述

如圖所示GitHub的密鑰認證成功,Gitlab密鑰認證的測試方式同上。

須要注意的是,因爲Gitlab是私有代碼倉庫,測試時須要在git@後面輸入Gitlab所在ip地址域名,才能正確測試。

6. 多個密鑰管理

當你在同一臺電腦下生成多個密鑰時,你就須要對多個密鑰進行認證管理,不然你的密鑰將沒法正常使用。

具體步驟以下。

6.1 添加config文件

首先在./ssh/文件夾下手動config文件,配置密鑰信息。

在這裏插入圖片描述

# gitlab
Host gitlab.com
HostName gitlab.com
User root
IdentityFile ~/.ssh/id_rsa

# github
Host github.com
HostName github.com
User root
IdentityFile ~/.ssh/id_rsa_github

Host 表明 關鍵詞
HostName 表明 主機地址
User 表明 用戶名
IdentityFile 表明 認證文件

複製代碼

6.2 添加密鑰信任

完成配置,還須要對每一個密鑰添加信任,打開Git Bash 輸入下面的指令。

eval $(ssh-agent -s)

ssh-add ~/.ssh/other_id_rsa

eval 表明 開啓代理認證指令

ssh-add 表明 添加ssh文件認證
複製代碼

在這裏插入圖片描述

須要重點提醒,config文件主要用於管理密鑰信息,並無實際功能,不添加config文件直接爲密鑰添加信任也是能夠的。

可是考慮到密鑰信息的管理,強烈建議添加config文件,配置好密鑰的信息。

6.3 gitlab官方示例

在這裏插入圖片描述

7. 多密鑰認證測試

完成多祕鑰認證後,經過ssh -T git@,測試不一樣平臺的密鑰是否能鏈接成功。

7.1 GitHub

在這裏插入圖片描述

7.2 Gitlab

在這裏插入圖片描述

Git經常使用命令

最後附上經常使用的Git命令,供你們參考使用

1. 遠程倉庫相關命令

檢出倉庫:$ git clone [git url]
查看遠程倉庫:$ git remote -v
添加遠程倉庫:$ git remote add [name] [url]
刪除遠程倉庫:$ git remote rm [name]
修改遠程倉庫:$ git remote set-url --push[name][newUrl]
拉取遠程倉庫:$ git pull [remoteName] [localBranchName]
推送遠程倉庫:$ git push [remoteName] [localBranchName]
複製代碼

2. 分支(branch)操做相關命令

查看本地分支:$ git branch
查看遠程分支:$ git branch -r

建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換爲當前分支
切換分支:$ git checkout [name]
建立新分支並當即切換到新分支:$ git checkout -b [name]

建立遠程分支(本地分支push到遠程):$ git push origin [name]
合併分支:$ git merge [name] ----將名稱爲[name]的分支與當前分支合併

刪除本地分支:$ git branch -d [name] 
刪除遠程分支:$ git push origin -d [name]
複製代碼

3. 本地項目鏈接遠程倉庫

查看當前項目下全部文的狀態:$ git status

(.)點表示當前目錄下的全部內容,交給git管理:$ git add .

對你更新或修改了哪些內容作一個描述:$ git commit –m」new natter 」

查看你當前項目遠程鏈接的是哪一個倉庫地址:$ git remote -v 

將本地的項目提交到遠程倉庫中:$ git push origin master 

將遠程倉庫項目拉到本地項目中:$ git pull origin master
複製代碼

結語

以上就是本文的所有內容了,感謝你的閱讀,若是你有什麼疑問或者建議,歡迎你隨時留言,互相討論。

最後,祝工做順利,生活幸福。

在這裏插入圖片描述
相關文章
相關標籤/搜索