git clone的兩種方式以及淺談加密(一)

一. 引言

今天使用git clone的時候因爲沒有配置ssh 可是使用了ssh的clone命令,出了點問題。仔細研究了一下,仍是挺有意思的,特地記錄下來能給你們帶來一些收穫。html

二. git clone的兩種方式.

git clone分爲兩種方式,一種是經過ssh,還有一種是經過http(s)。前端

1. ssh

clipboard.png

在clone的時候能夠選擇SSH,首先在命令行輸入git

ssh-keygen -t rsa  -C 「email」
//這裏 -c是建立別名,通常網站都喜歡用郵箱

一路點擊肯定,在本地生成.ssh文件,裏面有id_rsa(私鑰) id_rsa.pub(公鑰),將公鑰上傳到github上就能夠直接免密與github進行文件傳輸了github

// 本地存在.ssh文件後
// 終端輸入
 $ cd ~/.ssh/
 $ cat id_rsa.pub
 $ ssh-rsa xxxxxxxxxxxxxxxxxxx yourEmail
// 複製上面出現的內容

在gitlab(github)-->我的帳戶-->setting-->ssh 將剛複製的公鑰粘貼
此時就完成了ssh設置,再clone就是免密的啦。算法

這裏要提心一下,這時候clone的格式必定是 git clone git@xxxxxxxxxxsegmentfault

2. HTTP

HTTP的方式比較簡單,就是 git clone 給定的url,而後輸入本身在gitlab(github)上相應的帳號就好了。
clipboard.png安全

3. ssh與HTTP方式的比較

想要比較他們之間的優缺點,首先要搞清楚爲何會這麼設計。
我我的認爲,項目通常分爲兩類,一類是團隊(我的)的項目,一類是開源的項目。
團隊(我的)項目,具備私有性。同時拉或者推爲了方便都應該不須要驗證。這就須要保證數據在傳輸中的私有與可靠。因此使用ssh協議(以非對稱加密實現身份驗證)。
開源項目,具有公有特性。一方面若是每一個參與者的數據的拉取都進行加密解密的話,代價將會很是大。另一個方面,對於衆多提交者,代碼應該由管理者去審覈是否merge,同時代碼也沒有必要保持傳輸過程當中的私有可靠。因此能夠採用HTTP明文傳輸或者HTTPS也能夠。服務器

三. 加密

在密碼學中,加密(英語:Encryption)是將明文信息改變爲難以讀取的密文內容,使之不可讀的過程。只有擁有解密方法的對象,經由解密過程,才能將密文還原爲正常可讀的內容。

具體在前端中你至少要明白下面幾個概念:
公鑰、私鑰、RSA、數字證書、https與http的關係、TLS與SSL
我將在本篇文章和下篇文章爲你們一一道來網絡

1. 對稱加密

對稱加密很簡單,就是明文通過密鑰轉化成密文,假若我知道密鑰和密文,我也能夠推出明文,典型的像是摩爾斯碼。因此在諜戰片中,咱們常常看到特務找密碼本,就是由於有了密碼本就能夠破譯密文了。ssh

2. 非對稱加密(RSA)

在對稱加密中,因爲是直接傳遞的密鑰,密鑰容易被人竊取致使信息泄漏,

人們認識到,加密和解密可使用不一樣的規則,只要這兩種規則之間存在某種對應關係便可,這樣就避免了直接傳遞密鑰。這種加密方式就叫作非對稱加密。

1977年,三位數學家Rivest、Shamir 和 Adleman 設計了一種算法,能夠實現非對稱加密。這種算法用他們三我的的名字命名,叫作RSA算法。從那時直到如今,RSA算法一直是最廣爲使用的"非對稱加密算法"。絕不誇張地說,只要有計算機網絡的地方,就有RSA算法。

在RSA加密算法中,公鑰用於對數據進行加密,私鑰用於對數據進行解密
在RSA簽名算法中,私鑰用於對數據進行簽名,公鑰用於對簽名進行驗證。

3. ssh

ssh是一個安全協議,以非對稱加密實現身份驗證。,本機產生id_rsa(私鑰) id_rsa.pub(公鑰),將公鑰上傳到github上。pull的時候公鑰用於對數據進行加密,私鑰用於對數據進行解密,push的時候私鑰用於對數據進行簽名,公鑰用於對簽名進行驗證。

4. 拓展

這裏再介紹一個部署項目的方法,好比咱們開發項目,把項目託管到gitlab上,而後當咱們部署項目的時候將本地文件上傳到服務器上。說實話這一步仍是比較麻煩的。咱們其實可讓gitlab和咱們線上服務器經過ssh鏈接,當gitlab代碼更新到最新版本的時候,服務器上我只須要運行git pull 就能夠自動完成文件的拉取、更新以及項目的部署了。

總結

本文從git進行文件傳輸的兩種方式出發,介紹了部分加密的概念,但願對你們有所幫助。後面將像你們介紹剩餘的加密方面的概念

參考

加密-維基百科
RSA算法原理(一)
白話解釋 對稱加密算法 VS 非對稱加密算法

相關文章
相關標籤/搜索