Network - Protocol - SSH
Quick Chat
SSH(Secure Shell)是一種加密的網路協議,允許你安全地連接到遠端伺服器。對 Git 來說,使用 SSH 主要有這些優勢:
- 免密碼認證:使用 SSH 金鑰(SSH Keys)後,不需要每次都輸入帳號密碼。
- 更安全:SSH 使用非對稱加密,比 HTTPS(帳號 + 密碼)更安全。
- 更適合自動化:如果你要寫腳本來自動處理 Git 操作,SSH 會比 HTTPS 更方便。
Env - Windows
⚠️ 以下皆使用 PowerShell 操作
Step 1: 檢查 Windows 是否已安裝 OpenSSH
Windows 10 以上的系統已經內建 OpenSSH
ssh -V
如果有顯示類似這樣的版本資訊,代表 OpenSSH 已經安裝:
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Step 2: 產生 SSH 金鑰
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
t rsa
:使用 RSA 演算法(GitHub 推薦)b 4096
:密鑰長度 4096 bits(更安全)C "your-email@example.com"
:加上你的 Email 作為標註
Step 3: 儲存金鑰
執行指令後,系統會詢問你要存在哪裡:
Enter file in which to save the key (/c/Users/YourName/.ssh/id_rsa): # 直接按 Enter
然後,系統會問你是否要設定密碼(passphrase),如果你希望 SSH Key 更安全,可以輸入密碼,否則直接按 Enter。
Step 4: 將公鑰新增到 Git 服務
SSH 金鑰有兩個檔案:
- 私鑰(id_rsa):不要洩漏,這是你本機的登入金鑰。
- 公鑰(id_rsa.pub):可以分享,這是給遠端伺服器認證的金鑰。
檢視公鑰
Get-Content $env:USERPROFILE\.ssh\id_rsa.pub
填入 GitHub
Settings > SSH and GPG keys(GitHub)
Step 5: 測試 SSH 連線
ssh -T git@github.com
如果成功,你會看到
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.