論git中使用https和ssh協議的區別

2021-09-23 06:02:18 字數 2033 閱讀 3897

sheldon cui's blog 

2017-09-08 

git, https, ssh, 心得

git可以使用四種主要的協議來傳輸資料: 本地協議(local),http 協議,ssh(secure shell)協議及 git 協議。其中,本地協議由於目前大都是進行遠端開發和共享**所以一般不常用,而git協議由於缺乏授權機制且較難架設所以也不常用。

最常用的便是ssh和http(s)協議。git關聯遠端倉庫可以使用http協議或者ssh協議。

https利於匿名訪問,適合開源專案可以方便被別人轉殖和讀取(但他沒有push許可權);畢竟為了轉殖別人乙個倉庫學習一下你就要生成個ssh-key折騰一番還是比較麻煩,所以github除了支援ssh協議必然提供了https協議的支援。

而ssh協議使用公鑰認證比較適合內部專案。 當然了現在的**管理平台例如github、gitliab,兩種協議都是支援的,基本上看自己喜好和需求來選擇就可以了。

ssh的協議理解起來比https簡單多了,大家可以參考阮一峰老師的這篇文章ssh原理與運用 和 我的這篇文章ssh建立通道和認證原理。

總結來看,就是ssh協議使用目前已經比較成熟的rsa這類非對稱加密技術來實現了安全秘鑰的協商: 目標主機把自己的公鑰傳送給客戶端,客戶端用公鑰加密一些東西之後傳給伺服器,伺服器用rsa私鑰從中解出一些東西,保證了一些東西防篡改、防洩密,最終協商出只有雙方才知道的通訊金鑰。

如果要使用ssh協議來轉殖或者push github上的**,則git程式會採用ssh的校驗機制。而由於github上所有倉庫都是採用共用git賬號體系的方式, 是無法用git使用者登入github伺服器的。各個使用者只能通過公鑰認證的方式使用此ssh賬號訪問版本庫。 因此,你在執行git clone命令之前,必須確保已經把ssh公鑰放置到了github伺服器上。

生成公鑰可以看這裡: github官方公鑰配置教程

rsa公鑰生成後,可以用mac上的拷貝命令,把公鑰拷貝到剪下板:

# copies the contents of the id_rsa.pub file to your clipboard

# pbcopy < ~/.ssh/id_rsa.pub

然後,去github上把這個公鑰拷貝到**的個人配置中(相當於在github伺服器的~/.ssh/authorized_keys),接下來就能愉快的進行轉殖。

如果遠端主機是自己可以控制的機器,也可以這樣:

ssh-copy-id user@host

或scp -p 22 id_rsa.pub [email protected]:/root/.ssh/authorized_keys

或追加cat ~/.ssh/id_dsa.pub|ssh -p 22 [email protected] `cat - >> ~/.ssh/authorized_keys`

注意一點: 當你把公鑰設定到github上時,你會在ui介面上看到乙個fingerprint的指紋,這個指紋其實就是你的公鑰的指紋。你可以對比這個指紋是否跟你本機的公鑰指紋相同,盡量把github上不熟悉的公鑰都刪掉

https認證方式雖然需要輸入賬戶密碼,但現在也不需要每次都輸入。這個憑據儲存需要依賴乙個憑據管理器,每個作業系統平台都有自己的憑據管理器。可以參考github官方提供的教程來配置

我這裡介紹乙個git的憑據管理方式:

# 建立憑據檔案

$ touch ~/.git-credentials

$ vim ~/.git-credentials

在檔案中加入帶憑據的url資訊:

然後告訴git使用這個憑據管理器:

$ git config --global credential.helper store

[credential]

helper = store

git之ssh和https密碼配置

在vscode中使用git和github

這學期的團隊專案比較多,這裡?一下常用的git命令,免得每次都去查 init locally and push to github config your name and email git config global user.name abc git config global user.em...

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

clone clone可以使用https或ssh協議 如果使用ssh轉殖專案,需要做以下配置。1.開啟git bash 2.執行命令 ssh keygen t rsa 之後有y n的選擇,一直按回車即可 3.在執行的路徑下生成兩個檔案id rsa 私鑰 id rsa.pub 公鑰 4.開啟id rs...

git 六 IDEA中使用git

安裝好intellij idea後,如果git安裝在預設路徑下,那麼idea會自動找到git的位置,如果更改了git的安裝位置則需要手動配置下git的路徑。選擇file settings開啟設定視窗,找到version control下的git選項 選擇git的安裝目錄後可以點選 test 按鈕測試...