iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
Modern Web

Git 起來!每日一招學起來系列 第 15

Day 15:Git 認證與 SSH key —— 開啟雲端世界的鑰匙

  • 分享至 

  • xImage
  •  

昨天我們學會了 git remote,知道如何把本地專案和遠端倉庫連結。

但當你第一次嘗試 git push 時,可能會遇到這樣的訊息:

Permission denied (publickey).
fatal: Could not read from remote repository.

別慌,這正是 Git 在保護你的遠端專案不被陌生人亂動。

今天,我們就來學 Git 認證與 SSH key,讓推送不再被拒。


為什麼 Git 需要認證?

Git 本身只在本機運作,但如果你想和 GitHub、GitLab 等雲端倉庫同步,就需要認證。

  • Git:本機版本控制工具,可單獨使用
  • GitHub:雲端平台,與 Git 整合,可以多人協作、做雲端備份

遠端倉庫存放著你的程式碼與專案歷史,Git 需要確認 你是被信任的人 才允許推送或拉取。

認證方式主要有兩種:

  1. HTTPS
    • 每次 git push/git pull 都要輸入帳號密碼或 Personal Access Token (PAT)。
    • 簡單但每次都要輸入,或設定憑證快取。
  2. SSH
    • 用公私鑰配對,一次設定後就可以安全免密碼推送。
    • 是團隊與遠端協作的首選方式。

簡單來說,有了 SSH key,你的 Git 推送就像有了門禁卡,不用每次輸入密碼就能安全進出 🛡️。


什麼是 SSH key 公私鑰?

SSH key 是 Git 本地端和遠端倉庫的 安全認證方式

  • 公鑰(public key)放在 GitHub 上
  • 私鑰(private key)留在本機
  • Git push / pull 時,SSH key 幫你自動認證,不必每次輸入帳號密碼

想像一下:公鑰就像門鎖,私鑰就是鑰匙。只有對應的鑰匙能開門,保護你的專案安全。


如何使用 SSH Key ?

1️⃣ 產生公私鑰對

在本機的終端機執行:

ssh-keygen

按 Enter 三次即可(存放路徑、密碼可留空),會產生兩個檔案

預設會在:

  • Windows:

    C:\Users\user\.ssh\ 裡面的 id_rsa (私鑰) & id_rsa.pub (公鑰)

  • macOS / Linux:

    ~/.ssh/ 裡面的 id_rsa (私鑰) & id_rsa.pub (公鑰)

2️⃣ 複製 public key 到剪貼簿

開啟檔案 id_rsa.pub 手動複製所有內容或使用指令複製

  • Windows:

    type %userprofile%\.ssh\id_rsa.pub | clip
    
  • macOS:

    pbcopy < ~/.ssh/id_rsa.pub
    
  • Linux:

    cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
    
    #簡寫
    xclip -sel clip < ~/.ssh/id_rsa.pub
    

3️⃣ 公鑰貼到遠端帳號 GitHub

  • GitHub:
    1. 右上角的大頭貼 → Settings → SSH and GPG keys
    2. SSH keys → 點選 New SSH key
    3. 貼上 public key (.pub檔案內容) → Add SSH key
  • GitLab / 公司 Git 伺服器也有類似操作。

4️⃣ 測試連線

ssh -T git@github.com

第一次會問 yes/no,輸入 yes,如果看到:

You've successfully authenticated...

就表示認證成功 🎉


小技巧

  • 如果遠端還是用 HTTPS,可以改成 SSH URL,避免每次輸入密碼:

    git remote set-url origin git@github.com:yourname/project.git
    
  • 一旦 SSH key 設定完成,你就可以放心地使用 git push / git pull 進行協作。

  • 保護私鑰,不要上傳到雲端或分享給他人。


小挑戰 💪

  1. 產生一組新的 SSH key,並貼到 GitHub 或 GitLab 帳號上。

  2. 用 SSH URL 連結遠端是否成功。

  3. 嘗試 git push -u origin main,確認推送成功。

  4. 如果想練習 HTTPS,也可以嘗試 Personal Access Token 方式。

    GitHub:Settings → Developer settings → Personal access tokens


小結

  • 遠端推送需要認證,Git 會保護你的專案不被亂動。
  • HTTPS 和 SSH 各有優缺點,但 SSH 是長期協作首選。
  • 設定 SSH key 後,推送、拉取都能順利進行。
  • 搭配 Day 14 的 git remote,你的專案就能安全上雲端,開始團隊協作。

上一篇
Day 14:git remote —— 建立專案的雲端橋樑
下一篇
Day 16:git push —— 把你的程式碼推上雲端
系列文
Git 起來!每日一招學起來18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言