Git使用SSH協議clone專案及SSH簡介

2022-07-07 19:24:16 字數 2191 閱讀 1494

clone

clone可以使用https或ssh協議

如果使用ssh轉殖專案,需要做以下配置。

1. 開啟git bash

2. 執行命令:ssh-keygen -t rsa ,之後有y/n的選擇,一直按回車即可

3. 在執行的路徑下生成兩個檔案id_rsa(私鑰), id_rsa.pub(公鑰)

4. 開啟id_rsa.pub檔案,複製裡面的全部內容,然後到github或gitlab網頁,點選自己的使用者頭像,點選setting,找到ssh的一項,new乙個ssh key,再把複製的內容貼上即可。

5. 之後就可以使用ssh的方式轉殖專案了。

ssh擴充套件

ssh(安全外殼協議)為 secure shell 的縮寫,它是專為遠端登入會話(例如windows遠端登入linux伺服器)和其他網路服務提供安全性的協議,可有效彌補網路中的漏洞。通過ssh,可以把所有傳輸的資料進行加密,也能夠防止dns欺騙和ip欺騙。還有乙個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。目前已經成為linux系統的標準配置。

ssh的安全機制

ssh之所以能夠保證安全,原因在於它採用了非對稱加密技術(rsa)加密了所有傳輸的資料。

傳統的網路服務程式,如ftp、pop和telnet其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另乙個人或者一台機器冒充真正的伺服器接收使用者傳給伺服器的資料,然後再冒充使用者把資料傳給真正的伺服器。

但並不是說ssh就是絕對安全的,因為它本身提供兩種級別的驗證方法:

第一種級別(基於口令的安全驗證):只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但是不能保證你正在連線的伺服器就是你想連線的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人攻擊」這種方式的攻擊。

第二種級別(基於金鑰的安全驗證):你必須為自己建立一對金鑰,並把公鑰放在需要訪問的伺服器上。如果你要連線到ssh伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的金鑰進行安全驗證。伺服器收到請求之後,先在該伺服器上你的主目錄下尋找你的公鑰,然後把它和你傳送過來的公鑰進行比較。如果兩個金鑰一致,伺服器就用公鑰加密「質詢」(challenge)並把它傳送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私鑰在本地解密再把它傳送給伺服器完成登入。與第一種級別相比,第二種級別不僅加密所有傳輸的資料,也不需要在網路上傳送口令,因此安全性更高,可以有效防止中間人攻擊。

在git使用ssh轉殖專案就屬於第二種級別。

rsa演算法屬於非對稱加密演算法。

rsa公開金鑰密碼體制是一種使用不同的加密金鑰與解密金鑰,「由已知加密金鑰推導出解密金鑰在計算上是不可行的」密碼體制。

演算法原理:rsa公開金鑰密碼體制的原理是:根據數論,尋求兩個大素數比較簡單,而將它們的乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。

自己的理解

在網上搜尋了許多有關非對稱加密演算法的文章,也略懂了一些原理,這裡記下自己的理解。

非對稱加密演算法是通過一組數學算式實現的,由於脫離數學太久,一些數學符號、術語早已忘記,大概就是通過質數的相乘和什麼因式分解實現的。

換成自己的理解就是:

例如有一道數學題137 x 753=?我們很容易就可以算出來。

137 x 753=103161

但是要算103161是由哪2個整數(非自身與1相乘)相乘得來的就困難了許多。

隨著2個乘數越大,結果越大,因式分解也就越難求(不知道是不是叫因式分解,你懂我意思嗎,我向你敬禮,色鹿)

所以,rsa演算法的保密強度隨其金鑰的長度增加而增強。但是,金鑰越長,其加解密所耗用的時間也越長。因此,要根據所保護資訊的敏感程度與攻擊者破解所要花費的代價值不值得以及系統所要求的反應時間來綜合考慮,尤其對於商業資訊領域更是如此。

還可以這麼理解,公鑰就像是鎖頭,私鑰就像是鑰匙,掛在門口上的鎖頭是公開的,鑰匙是自己才有的。想一想現實中配鑰匙,都是帶著鑰匙去配的,而不是帶著鎖頭去配,根據公鑰來推導私鑰,難度很大。

Git常用協議 SSH配置

我們常用的git遠端倉庫協議有 git協議 為自帶的網路協議,它適用於不需要對讀進行授權的大型專案 優點 傳輸速度最快 缺點 授權機制不靈活,要麼不能推送,要麼都能推送 http https協議 優點 容易架設,適用於提供唯讀的倉庫 防火牆穿透強 缺點 傳輸速度慢 開銷大 ssh協議 同時支援讀和寫...

IDEA中Git使用http協議和ssh協議的區別

https協議,ssh協議進行 的推送 拉取 原理上區別?外觀上區別?ssh協議的 git gitlab hustle backend bigdata bd api.git http協議的 http gitlab hustle backend bigdata bd api.git http協議 新,...

git切換ssh和http協議

1.檢視當前remote git remote v 2.切換到http git remote set url origin 3.切換到ssh git remote set url origin git github.com username repository.git情況一 例如會遇到新增pods...