---
# System prepended metadata

title: 使用 SSH Key 與 GitHub 連線教學
tags: [更新上部落格]

---

# 使用 SSH Key 與 GitHub 連線教學

![SSH Key 與 GitHub 連線教學](https://hackmd.io/_uploads/rJ1AkKNMkl.jpg)

## 前言

對於每位軟體工程師來說，**Git** 是日常工作中不可或缺的工具之一。無論是軟體開發中的團隊協作，還是程式碼的維護與更新，Git 都能有效地幫助我們管理版本並保持團隊同步。

然而，經常使用 Git 的你是否遇過這樣的情況：  
每次執行 `git push` 或 `git pull` 時，總是需要輸入帳號密碼，既耗時又不方便。其實，這些問題都可以透過 **SSH Key** 來解決。不僅能讓操作更高效，也能提升安全性。

除此之外，當我們在團隊合作中，需要快速抓取程式碼進行開發時，使用 SSH Key 更是非常實用且推薦的做法！  
如下圖所示，設定好 SSH 後，團隊開發的效率將更進一步：  
![團隊合作使用 SSH key](![image](https://hackmd.io/_uploads/r124dtVf1x.png)

接下來，就讓我們一起學習如何設定 SSH Key 並與 **GitHub** 建立安全連線吧！

---

## SSH Key 是什麼？

**SSH Key** 是一組用於身份驗證的加密金鑰對，常用於安全地連接伺服器、版本控制系統（如 GitHub）或其他需要安全性驗證的服務。它是實現 **SSH（Secure Shell）協議**的重要部分，能夠在不使用密碼的情況下實現高安全性的加密連線。

---

### SSH Key 的結構
SSH Key 包含兩部分：
1. **公鑰（Public Key）**  
   - 這部分可公開分享，例如上傳到 GitHub 或伺服器。
   - 公鑰會用於加密資料。

2. **私鑰（Private Key）**  
   - 這部分必須妥善保管，不能外洩。
   - 私鑰會用於解密資料並證明你的身份。

當伺服器收到你的公鑰並匹配到你的私鑰時，就可以確定是你本人在進行連線。

---

### 為什麼要使用 SSH Key？

1. **更安全**  
   相比使用帳號密碼，SSH Key 基於加密技術，比密碼更難破解。

2. **免密碼登入**  
   設定好 SSH Key 後，連線時不再需要手動輸入密碼，節省時間且方便。

3. **防範中間人攻擊**  
   SSH Key 的加密機制可以有效防止中間人攔截與破解。

---

### 使用 SSH Key 的場景
1. **遠端伺服器連線**  
   例如使用 SSH 登入 Linux 伺服器進行管理。

2. **版本控制系統（如 GitHub/GitLab）**  
   用於身份驗證，避免每次 `git push` 或 `git pull` 時都需要輸入帳號密碼。

3. **自動化部署**  
   在 CI/CD 系統中，使用 SSH Key 無需手動干預即可進行自動部署。

---

## 操作流程

### 1. 產生 SSH Key

我們首先需要在本地端生成 SSH Key，這是一組用於身份驗證的加密金鑰對（包含私鑰與公鑰）。

執行以下指令來產生金鑰：  
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```

以下是指令的參數解釋：
- **`-t rsa`**：指定金鑰類型為 RSA。
- **`-b 4096`**：設定金鑰長度為 4096 位元，以提高安全性。
- **`-C "your_email@example.com"`**：附加你的電子郵件地址作為標識，方便管理。

執行後，系統會要求指定存放金鑰的路徑與名稱（預設為 `~/.ssh/id_rsa`），以及是否設定密碼（可自行選擇）。

---

### 2. 將公鑰上傳至 GitHub

生成完金鑰後，下一步是將公鑰上傳至 GitHub：

1. 使用以下指令查看生成的公鑰內容：  
   ```bash
   cat ~/.ssh/id_rsa.pub
   ```
   結果會是一串以 **`ssh-rsa`** 開頭的長字符串。

2. 登入你的 GitHub 帳戶，前往 **Settings** > **SSH and GPG keys**，點擊 **New SSH Key** 按鈕。

3. 在 **Key** 欄位中，將剛剛複製的公鑰內容貼上，並為該金鑰設定一個描述性名稱（例如 "My Laptop SSH Key"）。  
   完成後點擊 **Add SSH Key** 儲存。  
   參考下圖操作：  
   ![GitHub SSH Key 設定畫面](https://hackmd.io/_uploads/SyWdLHEzkl.png)

---

## 結語

透過 SSH Key，不僅可以省去每次輸入帳號密碼的麻煩，也能讓連線更加安全且高效。無論是個人專案開發還是團隊合作，這都是一個實用且推薦的最佳實踐。

希望這篇教學對你有所幫助！如果在設定過程中遇到問題，歡迎留言討論 😊

--- 

###### tags: `更新上部落格`
