在 Git 中使用 SSH 金鑰克隆倉庫或分支

Ankit Raj Goyal 2023年1月30日 2022年4月22日
  1. 什麼是 SSH
  2. 為什麼使用 SSH 金鑰克隆 Git
  3. 在 Git 中使用 SSH 金鑰克隆倉庫
  4. 使用選項擴充套件 Git 克隆 SSH
在 Git 中使用 SSH 金鑰克隆倉庫或分支

SSH Git 克隆提供了一種克隆遠端倉庫的安全方法。本教程展示了使用 SSH 金鑰進行 Git 克隆的完整方法 - 如何生成 SSH 金鑰、在 Git 中設定 SSH 以及使用 SSH 金鑰進行 Git 克隆。

我們還展示了一些有用的選項來擴充套件該功能 - 只克隆一個分支,克隆到選定的目錄,或者只克隆一些大型倉庫的提交。

什麼是 SSH

SSH 或安全 shell 協議是一種網路協議,用於在不安全的網路上使用安全服務。它使用公鑰-私鑰對 - 只有你在將公鑰傳送到你要使用的服務時才能訪問你的私鑰。

任何用你的公鑰加密的資料只能用你的私鑰開啟,反之亦然。

為什麼使用 SSH 金鑰克隆 Git

SSH Git Clone 提供了一種通過不安全的公共網路安全地克隆遠端倉庫的簡單方法。

如果你使用 SSH 金鑰進行 Git 克隆,則不必每次都重新輸入密碼來向遠端伺服器表明自己的身份。一旦伺服器對 SSH 代理進行身份驗證,它就會記住詳細資訊 - 你不必每次都重新輸入 SSH 金鑰。

生成 SSH 金鑰對

我們使用 ssh key-gen 命令生成一個 SSH 公私金鑰對。

ssh key-gen

生成 ssh 金鑰

它將提示你輸入密碼以保護對客戶端計算機上金鑰的訪問 - 你可以選擇將其留空,或輸入你喜歡的密碼。

專業提示:輸入密碼時不會顯示任何字元。這是為了隱藏密碼的長度並增加安全性。

專業提示 2:在某處寫下你的密碼。如果你忘記了它,你將無法恢復你的訪問許可權。

我們在這裡保留 ssh key-gen 命令的預設值,但我們也可以傳入不同的選項——我們想要的加密演算法(例如 ed2559)、標籤、儲存金鑰的特定位置。

檢查儲存的 SSH 金鑰對

我們檢查我們的 SSH 金鑰是否生成並正確儲存。

ls -al ~/.ssh

檢查 ssh 金鑰

金鑰儲存在你機器的 .ssh 資料夾中。id_rsa 檔案儲存私鑰,而 id_rsa.pub 儲存你的公鑰。

如果你在輸出中看到這兩個檔案,則你已成功建立並儲存了一個 SSH 金鑰對。

將 SSH 金鑰新增到 SSH 代理

我們將 SSH 代理作為後臺程序啟動。

eval "$(ssh-agent -s)"

啟動 ssh 代理

我們看到代理作為後臺程序 970 執行。我們將 SSH 私鑰新增到 SSH 代理。

ssh-add ~/.ssh/id_rsa

新增私鑰 sshagent

代理確認它已使用訊息 Identity added : <path_to_private_key 新增了私鑰。

將公鑰新增到遠端 GitHub 帳戶

將公鑰複製到剪貼簿。

clip < ~/.ssh/id_rsa.pub

專業提示:始終複製 PUBLIC 鍵。切勿與任何人共享你的 PRIVATE 金鑰。

  1. 轉到你的 GitHub 帳戶。
  2. 點選個人資料圖片
  3. 從下拉選單中選擇設定

github 設定

  1. 點選左側欄中的 SSH and GPG Keys

選擇 ssh 和 gpg 金鑰

  1. 點選右上角的 New SSH Key

新的 ssh 鍵單擊

  1. 新增描述,並將 PUBLIC 鍵貼上到 Key 欄位中。

公共 sshkey 貼上到 github

你現在已經成功地使用你的 GitHub 帳戶識別了你的 SSH 代理。

測試與 GitHub 的 SSH 連線

我們測試與 GitHub 的 SSH 連線。

ssh -T git@github.com

測試 ssh 連線

該訊息確認你已成功通過身份驗證。

在 Git 中使用 SSH 金鑰克隆倉庫

接下來,我們使用 SSH 克隆我們的遠端倉庫。

  1. 複製你的倉庫的 SSH URL

GitHub 的倉庫中,單擊右上角的程式碼綠色按鈕。

單擊 SSH 以顯示你的 SSH URL。複製此 SSH URL。

複製 ssh 網址

  1. Git 終端中的 Git Clone SSH

在 Git 終端中使用 SSH 克隆遠端。

git clone <remote_repo_ssh_url>

<remote_repo_ssh_url> 是你在上面複製的 URL。

git 克隆 ssh

你已使用 SSH 金鑰在 Git 中成功克隆了一個倉庫。

使用選項擴充套件 Git 克隆 SSH

你可能需要針對你的用例使用特定型別的克隆。你可以使用一些選項通過 SSH 擴充套件 Git 克隆。

  1. Git Clone SSH Only 一個特定的分支

要使用 SSH 金鑰僅克隆一個分支:

git clone --branch <branch_to_clone> <remote_repo_ssh_url>

git clone 特定分支

這在大型倉庫的情況下非常有用。為了節省本地機器上的時間和空間,你可能只想克隆你工作的分支或只克隆幾個感興趣的分支。

  1. 使用 SSH 金鑰將 Git 克隆到特定位置

你可能希望克隆到特定資料夾以保持本地目錄結構井井有條。

克隆到特定位置:

git clone <remote_repo_ssh_url> <specific_location_local>

git clone 具體位置

  1. 使用 SSH 金鑰進行淺層 Git 克隆 - 僅克隆少量提交

對於大型倉庫,你可能希望減少克隆時間或節省本地磁碟空間。你可以通過僅克隆最後幾個提交的選定集來做到這一點。

只克隆幾個最近的提交:

git clone --depth=<n> <remote_repo_ssh_url>

這裡 <n> 是你要克隆的最近提交的數量。

例如,如果 n = 2,它將僅克隆最後兩個提交。

git 淺克隆 ssh

相關文章 - Git Clone