git http ssh哪個好

參考

各有優缺點,總的來說,HTTP使用更簡便廣泛。
  以下參考: (Git官方服務器協議文檔)

1.Git

Git 可以使用四種主要的協議來傳輸資料:本地協議(Local),HTTP 協議,SSH(Secure Shell)協議及 Git 協議。
  HTTP 協議(智能(Smart) HTTP 協議)
  Git 1.6.6 版本引入了一種新的、更智能的新版本HTTP協議,讓 Git 可以像通過 SSH 那樣智能的協商和傳輸數據。 新版本的 HTTP 協議一般被稱爲“智能” HTTP 協議,舊版本的一般被稱爲“啞” HTTP 協議。

2.http

“智能” HTTP 協議的運行方式和 SSH 及 Git 協議類似,只是運行在標準的 HTTP/S 端口上並且可以使用各種 HTTP 驗證機制,這意味着使用起來會比 SSH 協議簡單的多,比如可以使用 HTTP 協議的用戶名/密碼的基礎授權,免去設置 SSH 公鑰。
  智能 HTTP 協議或許已經是最流行的使用 Git 的方式了,它即支持像 git:// 協議一樣設置匿名服務,也可以像 SSH 協議一樣提供傳輸時的授權和加密。 而且只用一個 URL 就可以都做到,省去了爲不同的需求設置不同的 URL。 如果你要推送到一個需要授權的服務器上(一般來講都需要),服務器會提示你輸入用戶名和密碼。 從服務器獲取數據時也一樣。
  事實上,類似 GitHub 的服務,你在網頁上看到的 URL (比如Github),和你在克隆、推送(如果你有權限)時使用的是一樣的。

優點

不同的訪問方式只需要一個 URL 以及服務器只在需要授權時提示輸入授權信息,這兩個簡便性讓終端用戶使用 Git 變得非常簡單。 相比 SSH 協議,可以使用用戶名/密碼授權是一個很大的優勢,這樣用戶就不必須在使用 Git 之前先在本地生成 SSH 密鑰對再把公鑰上傳到服務器。 對非資深的使用者,或者系統上缺少 SSH 相關程序的使用者,HTTP 協議的可用性是主要的優勢。 與 SSH 協議類似,HTTP 協議也非常快和高效。
  另一個好處是 HTTP/S 協議被廣泛使用,一般的企業防火牆都會允許這些端口的數據通過。

缺點

在一些服務器上,架設 HTTP/S 協議的服務端會比 SSH 協議的棘手一些。 除了這一點,用其他協議提供 Git 服務與 “智能” HTTP 協議相比就幾乎沒有優勢了。
  如果你在 HTTP 上使用需授權的推送,管理憑證會比使用 SSH 密鑰認證麻煩一些。 然而,你可以選擇使用憑證存儲工具,比如 OSX 的 Keychain 或者 Windows 的憑證管理器。 參考 憑證存儲 如何安全地保存 HTTP 密碼。

3.SSH 協議

架設 Git 服務器時常用 SSH 協議作爲傳輸協議。 因爲大多數環境下已經支持通過 SSH 訪問 —— 即時沒有也比較很容易架設。 SSH 協議也是一個驗證授權的網絡協議;並且,因爲其普遍性,架設和使用都很容易。

優勢

用 SSH 協議的優勢有很多。 首先,SSH 架設相對簡單 —— SSH 守護進程很常見,多數管理員都有使用經驗,並且多數操作系統都包含了它及相關的管理工具。 其次,通過 SSH 訪問是安全的 —— 所有傳輸數據都要經過授權和加密。 最後,與 HTTP/S 協議、Git 協議及本地協議一樣,SSH 協議很高效,在傳輸前也會盡量壓縮數據。

缺點

SSH 協議的缺點在於你不能通過它實現匿名訪問。 即便只要讀取數據,使用者也要有通過 SSH 訪問你的主機的權限,這使得 SSH 協議不利於開源的項目。 如果你只在公司網絡使用,SSH 協議可能是你唯一要用到的協議。 如果你要同時提供匿名只讀訪問和 SSH 協議,那麼你除了爲自己推送架設 SSH 服務以外,還得架設一個可以讓其他人訪問的服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章