在GitLab/GitHub(Mac環(huán)境)使用SSH Key

一、概念介紹

git是分布式的代碼管理工具,遠(yuǎn)程的代碼管理是基于ssh的,所以要使用遠(yuǎn)程的git則需要ssh的配置。簡單的說,Git - 版本控制工具;Github是一個網(wǎng)站,提供給用戶空間創(chuàng)建git倉儲,保存用戶的一些數(shù)據(jù)文檔或者代碼等;GitLab是基于Git的項(xiàng)目管理軟件

? 首先,使用代碼管理工具把本地的代碼上傳到服務(wù)器時需要加密處理,加密傳輸?shù)乃惴ㄓ泻芏喾N,git可使用rsa,rsa要解決的一個核心問題是,如何使用一對密鑰,使其中一個可以用來加密,而另外一個可以用來解密。這這對密鑰就是public key(公鑰)和private key(私鑰)。

? 其中,公鑰就是那個用來加密的密鑰,這也就是為什么你在本機(jī)生成了公鑰之后,要上傳到github的原因。從github發(fā)回來的,用那公鑰加密過的數(shù)據(jù),可以用你本地的私鑰來還原。如果你的key丟失了,不管是公鑰還是私鑰,丟失一個都不能用了,解決方法也很簡單,刪除原有的key,重新再生成一次,然后在GitHub/GitLab里再設(shè)置一次就行

在個人電腦生成ssh密鑰后,會同時生成一個公開密鑰和一個私有密鑰,默認(rèn)情況下在用戶主目錄下的.ssh目錄中,密鑰為id_rsa,公開密鑰為id_rsa.pub。

密鑰和公開密鑰是共同使用的,協(xié)同開發(fā)中,一般會將公鑰配置在服務(wù)器中,這樣方便經(jīng)常登錄,也不需要輸入密碼,這是現(xiàn)在集群和各種云平臺常用的登錄方式,密鑰在本地不被泄漏就非常安全。

二、如何生成并設(shè)置SSH Key

步驟1.檢查是否已經(jīng)存在SSH Key

打開電腦終端,輸入以下命令:

ls -al ~/.ssh

會出現(xiàn)兩種情況

步驟2. 生成/設(shè)置SSH Key

繼續(xù)上一步可能出現(xiàn)的情況

(1)情況一:終端出現(xiàn)文件id_rsa.pub 或 id_dsa.pub,則表示該電腦已經(jīng)存在SSH Key,此時可繼續(xù)輸入命令:

pbcopy < ~/.ssh/id_rsa.pub

這樣你需要的SSH Key 就已經(jīng)復(fù)制到粘貼板上了,然后進(jìn)行步驟3

(2)情況二:終端未出現(xiàn)id_rsa.pub 或 id_dsa.pub文件,表示該電腦還沒有配置SSH Key,此時需要輸入命令:

ssh-keygen -t rsa -C "your_email@example.com"

默認(rèn)會在相應(yīng)路徑下(/your_home_path)生成id_rsa和id_rsa.pub兩個文件,此時終端會顯示:

Generating public/private rsa key pair.

Enter file in which to save the key (/your_home_path/.ssh/id_rsa):

連續(xù)回車即可,也可能會讓你輸入密碼,密碼就是你的開機(jī)密碼

此時再輸入命令:ls -al ~/.ssh 就會出現(xiàn)id_rsa.pub 和 id_dsa.pub兩個文件,然后重復(fù)情況一的步驟即輸入以下命令再進(jìn)行步驟3即可:

pbcopy < ~/.ssh/id_rsa.pub

步驟3.將SSH Key添加到GitLab中

? 打開GitLab, 登錄->點(diǎn)擊右上角的用戶頭像->點(diǎn)擊settings->在settings里找到SSH的設(shè)置->點(diǎn)擊“ADD SSH KEY”按鈕添加->將已經(jīng)獲得的SSH Key粘貼到“Key”,標(biāo)題可以隨便取,這樣就保持了本地與服務(wù)器端的聯(lián)系.

三、修改連接方式

步驟1.查看當(dāng)前地址

git remote -v

若是http(s)://XXXX/XXX.git形式,則說明目前配置的連接方式為http(s)
若是git@XXXX/XXX.git形式,則說明目前配置的連接方式為ssh

步驟2.設(shè)置新地址

git remote set-url origin [你想要設(shè)置的新地址]

步驟3.使用步驟1的方法查看是否修改成功

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 筆者性懶,腹中無墨 git是分布式的代碼管理工具,遠(yuǎn)程的代碼管理是基于ssh的,所以要使用遠(yuǎn)程的git則需要ssh...
    盜跖矢兒閱讀 25,064評論 4 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • ssh公鑰登錄 一般在管理遠(yuǎn)程主機(jī)時,都用ssh登錄,ssh user@host,但是這樣每次會使用密碼。 使用s...
    沉默寡言若有所思閱讀 11,638評論 0 6
  • GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實(shí)現(xiàn)一個自托管的Git項(xiàng)目倉庫,可通過Web界...
    YHWXQ簡簡單單的生活閱讀 88,335評論 3 37
  • 有必要先來了解什么是SSH和什么是SSH key。 SSH Secure Shell (SSH) 是一個允許兩臺電...
    faner閱讀 48,042評論 1 48

友情鏈接更多精彩內(nèi)容