在 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
它將提示你輸入密碼以保護對客戶端計算機上金鑰的訪問 - 你可以選擇將其留空,或輸入你喜歡的密碼。
專業提示:輸入密碼時不會顯示任何字元。這是為了隱藏密碼的長度並增加安全性。
專業提示 2:在某處寫下你的密碼。如果你忘記了它,你將無法恢復你的訪問許可權。
我們在這裡保留 ssh key-gen
命令的預設值,但我們也可以傳入不同的選項——我們想要的加密演算法(例如 ed2559)、標籤、儲存金鑰的特定位置。
檢查儲存的 SSH 金鑰對
我們檢查我們的 SSH 金鑰是否生成並正確儲存。
ls -al ~/.ssh
金鑰儲存在你機器的 .ssh
資料夾中。id_rsa
檔案儲存私鑰,而 id_rsa.pub
儲存你的公鑰。
如果你在輸出中看到這兩個檔案,則你已成功建立並儲存了一個 SSH 金鑰對。
將 SSH 金鑰新增到 SSH 代理
我們將 SSH 代理作為後臺程序啟動。
eval "$(ssh-agent -s)"
我們看到代理作為後臺程序 970
執行。我們將 SSH 私鑰新增到 SSH 代理。
ssh-add ~/.ssh/id_rsa
代理確認它已使用訊息 Identity added : <path_to_private_key
新增了私鑰。
將公鑰新增到遠端 GitHub 帳戶
將公鑰複製到剪貼簿。
clip < ~/.ssh/id_rsa.pub
專業提示:始終複製 PUBLIC
鍵。切勿與任何人共享你的 PRIVATE
金鑰。
- 轉到你的
GitHub
帳戶。 - 點選
個人資料圖片
。 - 從下拉選單中選擇
設定
。
- 點選左側欄中的
SSH and GPG Keys
。
- 點選右上角的
New SSH Key
。
- 新增描述,並將
PUBLIC
鍵貼上到Key
欄位中。
你現在已經成功地使用你的 GitHub 帳戶識別了你的 SSH 代理。
測試與 GitHub 的 SSH 連線
我們測試與 GitHub 的 SSH 連線。
ssh -T git@github.com
該訊息確認你已成功通過身份驗證。
在 Git 中使用 SSH 金鑰克隆倉庫
接下來,我們使用 SSH 克隆我們的遠端倉庫。
- 複製你的倉庫的 SSH URL
在 GitHub
的倉庫中,單擊右上角的程式碼
綠色按鈕。
單擊 SSH
以顯示你的 SSH URL。複製此 SSH URL。
- Git 終端中的 Git Clone SSH
在 Git 終端中使用 SSH 克隆遠端。
git clone <remote_repo_ssh_url>
<remote_repo_ssh_url>
是你在上面複製的 URL。
你已使用 SSH 金鑰在 Git 中成功克隆了一個倉庫。
使用選項擴充套件 Git 克隆 SSH
你可能需要針對你的用例使用特定型別的克隆。你可以使用一些選項通過 SSH 擴充套件 Git 克隆。
- Git Clone SSH Only 一個特定的分支
要使用 SSH 金鑰僅克隆一個分支:
git clone --branch <branch_to_clone> <remote_repo_ssh_url>
這在大型倉庫的情況下非常有用。為了節省本地機器上的時間和空間,你可能只想克隆你工作的分支或只克隆幾個感興趣的分支。
- 使用 SSH 金鑰將 Git 克隆到特定位置
你可能希望克隆到特定資料夾以保持本地目錄結構井井有條。
克隆到特定位置:
git clone <remote_repo_ssh_url> <specific_location_local>
- 使用 SSH 金鑰進行淺層 Git 克隆 - 僅克隆少量提交
對於大型倉庫,你可能希望減少克隆時間或節省本地磁碟空間。你可以通過僅克隆最後幾個提交的選定集來做到這一點。
只克隆幾個最近的提交:
git clone --depth=<n> <remote_repo_ssh_url>
這裡 <n>
是你要克隆的最近提交的數量。
例如,如果 n = 2
,它將僅克隆最後兩個提交。