快速搞定在 Windows 裡透過 SSH 通訊協定存取 GitLab 的 Repository
· 預估閱讀時間: 6 分鐘
前言
雖然說 Git 一直以來都支援 HTTPS 和 SSH 這兩種通訊協定,不過近年來不論是 GitHub 還是 GitLab 都建議使用 SSH 來存取 Repository。
這篇文章就分享一下在 Windows 上快速設定使用 SSH 存取 GitLab Repository 的方法。
事前準備
在繼續之前,請先確認電腦已經安裝好下列工具:
- Git for Windows (建議使用預設安裝,包含 Git Bash 和 SSH 等工具)。
- VSCode 或是 NotePad++ 等文字檔編輯工具(用來批次把原來使用 HTTPS 通訊協定的 Repo 改成使用 SSH)。
另外,請把 GitLab 的 URL、你的 Email、可以存取 API 的 Personal Access Token 先記在方便取用的文字檔或是剪貼簿裡。
廢話不多說,開工
接著,請照下面步驟操作(大部份指令都可以直接照抄就好)。
透過 SSH-Keygen 產出公鑰和私鑰
警告
- 有些人會建議不要設定金鑰的 Passphrase,免得之後每次都要輸入,但是其實我們可以透過 SSH Agent 來解決這個問題。 基於安全性考量,這邊還是建議大家不要省略這個重要的步驟,畢竟我們還是不會希望金鑰被別人拿去使用。
- 這邊為了方便,會自動產生 Passphrase,請各位複製之後妥善保存,或是使用自己喜歡的密碼。
我寫了一個 Script 可以直接在 Git Bash 裡執行,內容如下:
gen_ssh_key.sh
#!/bin/bash
#產生 Passphrase 並且存入環境變數
export MY_PASSPHRASE=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c8)
#輸入你在 GitLab 中使用的 Email
read -p '請輸入您在 GitLab 登記的信箱: ' email
#產出公、私鑰
ssh-keygen -t ed25519 -N $MY_PASSPHRASE -C $email -f ~/.ssh/id_ed25519_gitlab
echo -e "您的 Passphrase 是: ${RED} $MY_PASSPHRASE ${NC},請妥善保存。"
直接把上述內容儲存到 %USERPROFILE% 資料夾下,然後在 Git Bash 中輸入 . ./gen_ssh_key.sh 執行即可。
執行結果如下圖:
