使用 TortoiseGit 以 SSH 連結 GitLab,因 RSA private key 格式不同,而有兩種方式。
TortoiseGit 所使用的 SSH Client 預設為 TortoiseGitPlink.exe,必須搭配其 PuTTYgen 所產出的 .ppk 檔案。
若要使用 OpenSSH 則需要變更 SSH Client 的設定。
使用 PuTTYGen
建立 RSA Public/Private Key
安裝 TortoiseGit 後,PuTTYgen 也會同時存在 C:\Program Files\Git\usr\bin
的目錄下。在 Windows 搜尋 PuTTYGen
便可以找到此程式。
開啟 PuTTYgen 程式,選擇 RSA (預設),並點選 generate 按鍵後,不斷移動滑鼠,便可建立 public/private key pair。
Public key 會直接呈現在 PuTTY Key Generator 的畫面上,可用來複製到 GitLab 中,而 private key 則可點選 Save private key 按鍵,存放在指定的目錄下,以便提供給 TortoiseGit 使用。
將 Public Key 複製到 GitLab
點選 GitLab 右上角 icon,進入 Preferences 畫面。選擇 SSH Keys 功能,將 public key 複製到 Key 的 textbox 中。
TortoiseGit 指定 Private Key
開啟 TortoiseGit Settings,點選左側樹狀 Git 選項,再點選 Edit global.gitconfig 按鍵,開啟編輯視窗。
參考下列範例,設定 puttykeyfile 指向 RSA private key 所存放的位置:
[user]
name = your-name
email = your-name@domain-name.com
[remote "origin"]
puttykeyfile = c:\\ssh\\private-key.ppk
透過 SSH Clone 原始碼
首先進入 GitLab 網站,選擇專案,如下圖示,點選 Clone 並複製 Clone with SSH 裡的內容:
以檔案總管建立專案目錄,並以 Tortoise 的 Clone 功能,確定 Load Putty Key 指到 RSA private 所在位置,按下 OK 便可完成作業:
使用 OpenSSH
另一個方法是採用 OpenSSH 來建立 RSA Key Pair。首先透過 PowerShell 以下列指令來建立:
ssh-keygen -o -t rsa -C "your@email.com"
上列指令所使用的參數說明如下表:
參數 | 說明 |
---|---|
-o | 使用 open ssh 演算法 |
-t rsa | 採用 rsa |
-C “…” | 加入註解 |
執行 ssh-keygen 之後,將於c:\Users\<user-name>\.ssh
目錄中產出 id_rsa 與 id_rsa.pub 兩個文字檔案。其中 id_rsa 存放 RSA private key,而 id_rsa.pub 存放的是 RSA public key。
產出 RSA key pair 後,先將 id_rsa.pub 內容 (public Key) 複製到 GitLab 的 SSH Key 中。您可以嘗試直接在 PowerShell 下 git clone 指令,將原始碼複製到本機:
git clone git@gitlab.com:microsystex/date-calculator.git
如果要使用 TortoiseGit 的 Clone 功能,則需要修改 SSH client。如下圖所示,開啟 TortoiseGit Settings,點選 Network,將 SSH client 由預設的 C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
改為C:\Program Files\Git\bin\sh.exe
。
如此,便能以 OpenSSH 作為 TortoiseGit 與 GitLab 的連線安全機制了。
參考資料:
沒有留言:
張貼留言