Git - SSH 協議



SSH(安全外殼)協議是一種廣泛使用的傳輸協議,易於設定,並且廣泛適用於自託管的 Git 倉庫。克隆、推送和獲取等操作都受支援。在此,Git 使用 SSH 進行使用者身份驗證和透過網路傳輸資料的加密。

  • 它經常被選擇,因為對伺服器的 SSH 訪問要麼已經建立,要麼易於設定。

  • SSH 提供授權的網路連線,使 Git 操作更易於使用且更可靠。

主要特徵

SSH 的一些主要特徵包括:

1. 安全認證 - SSH 使用公鑰加密進行身份驗證。使用者生成一對 SSH 金鑰

  • 公鑰 - 與 Git 伺服器(如 GitHub、GitLab)共享的金鑰。

  • 私鑰 - 保留在使用者機器上的金鑰,無需密碼即可訪問。

2. 資料加密 - 透過對從客戶端到伺服器以及反向傳輸的所有資料進行加密來維護機密性和保護。

3. 輕鬆訪問 - 配置 SSH 金鑰後,會自動進行身份驗證。因此,每次連線到遠端倉庫時,都不需要輸入密碼。

它是如何工作的?

以下是描述 SSH 協議工作原理的步驟:

  • 生成 SSH 金鑰 - 使用ssh-keygen在本地機器上生成 SSH 金鑰對。

  • 將公鑰新增到伺服器 - 上一步生成的公鑰將新增到遠端 Git 伺服器,即新增到您的 GitHub 或 GitLab 帳戶下的 SSH 金鑰中。

  • 使用 SSH URL - 使用 SSH URL 訪問倉庫,而不是使用 HTTP(S) URL。

  • SSH 代理 - 為了快取您的 SSH 金鑰,以避免重複新增金鑰的密碼短語,您可以在本地機器上使用ssh-agent

要透過 SSH 克隆 Git 倉庫,可以使用:

git clone ssh://[user@]server/project.git

git clone [user@]server:project.git

如果 URL 中未指定使用者名稱,Git 會假設當前登入的使用者用於身份驗證。

優點

以下是使用 SSH 進行 Git 倉庫的一些優點:

  • 高度安全 - SSH 透過確保透過經過驗證和加密的資料傳輸的安全訪問來提高整體安全性。

  • 更快的效能 - 與 HTTPS 和本地協議相比,SSH 有效地提高了資料傳輸大小和效能。

  • 可信的連線 - 在初始連線後,伺服器的 SSH 指紋經過驗證,與伺服器的連線和通訊是可信且安全的。

  • 無需密碼訪問 - 初始設定完成後,無需輸入密碼即可與遠端倉庫互動。

缺點

以下是使用 SSH 進行 Git 倉庫的一些缺點:

  • 複雜的設定 - 設定 SSH 金鑰可能很複雜且耗時,尤其對於初學者而言。

  • 缺乏支援 - SSH 對 Git 倉庫匿名訪問的支援不足是一個缺點。

  • 開源專案的限制 - 克隆和倉庫訪問需要 SSH 訪問,這對於經常允許匿名克隆的開源專案來說可能是一個限制。

  • 效能開銷 - SSH 通常很快,但加密和解密過程會在資料傳輸過程中引入延遲。

  • 協作環境中的困難 - 對於需要多個使用者訪問共享帳戶的環境來說,這不太理想,需要將每個使用者的 SSH 金鑰新增到帳戶中。

儘管存在這些限制,SSH 仍然是最受信任和最廣泛使用的安全通訊協議。

廣告