SourceTree 連接 GitHub, Bitbucket (使用 SSH) 於 Windows
介紹如何使用 Windows 版的 SourceTree 透過 SSH 連接到 GitHub 及 Bitbucket。
SSH 全名為 Secure Shell,是一種資料傳輸的安全協定,可以對傳輸的資料進行加密,驗證方式可以使用密碼或金鑰,接下來實作會採用金鑰認證的方式,SSH 金鑰為非對稱加密,需要一組公鑰及私鑰,你可以將公鑰儲存在需要存取的遠端主機,在自己電腦設定私鑰,來進行資料加解密。
產生金鑰
使用 SSH 連接需要一組公鑰及私鑰,我們可以使用 PuTTY Key Generator 來產生,安裝 SourceTree 時會一併安裝。
點選 [Tools] > [Create or Import SSH Keys]。
點選 [Generate] 產生金鑰,產生期間需要移動滑鼠產生隨機資料。
金鑰產生完成。
Public key for pasting into OpenSSH authorized_keys file
: 公鑰,請先複製並貼到記事本,稍後連接 GitHub 或 Bitbucket 需要用到。另外有幾個地方可以設定:
Key comment
: 金鑰註解。Key passphrase
: 私鑰密碼,選擇性填寫,若有設定,往後開啟私鑰時會提示輸入密碼。Confirm passphrase
: 確認私鑰密碼。點選 [Save public key] 儲存公鑰。
點選 [Save private key] 儲存私鑰。
連接 GitHub
設定 SSH Key
登入 GitHub,點選頁面上方的 [Settings]。
新增 SSH 金鑰。
點選頁面左側的 [SSH keys] 管理 SSH 金鑰。
接著點選右側的 [Add SSH key]。
在 Add an SSH Key 下方填寫金鑰資訊。
Title
: 金鑰標題,取個好分辨的名稱,將來金鑰變多的話方便識別。Key
: 公鑰,貼上先前產生的公鑰。
點選 [Add key] 按鈕儲存,儲存時可能會要求輸入 GitHub 密碼。
儲存後可以看到剛剛新增的 Key 出現在列表。
取得 GitHub Repository SSH URL
進入想要連接的 repository。
頁面右側有 clone URL 區塊,請選擇 SSH,並複製 URL。
SSH 的 URL 是以 git@github.com:… 開頭。
連接 Bitbucket
設定 SSH Key
登入 Bitbucket,點選頁面右上方的個人圖示,點選 [Manage account]。
新增 SSH 金鑰。
點選頁面左側的 [SSH keys],接著再點選 [Add key]。
填寫金鑰資訊。
Label
: 金鑰標籤,取個好分辨的名稱,將來金鑰變多的話方便識別。Key
: 公鑰,貼上先前產生的公鑰。
點選 [Add key] 按鈕儲存。
儲存後可以看到剛剛新增的 Key。
取得 Bitbucket Repository SSH URL
進入想要連接的 repository。
點選頁面左側的 [Clone]。
選擇 SSH 的方式,並複製 URL。
設定本機電腦的私鑰
在遠方主機設定好公鑰之後,接下來需要在本機電腦設定私鑰,在 Windows 平台上可以使用 PuTTY 提供的金鑰代理程式 Pageant,
SourceTree 執行時會一併啟動 Pageant,並在常駐列出現圖示,在圖示上點選右鍵,選擇 [Add Key] 加入私鑰。
選擇前面儲存的私鑰檔 (預設附檔名為 ppk),如果有設定Key passphrase
請於跳出的視窗中輸入密碼。
點選常駐列圖示 [View Keys] 功能查看目前已經加入的私鑰。
設定 SourceTree 連接 GitHub 或 Bitbucket 的 repository
Clone 新 repository
- 開啟 SourceTree 的 [Clone / New] 功能。
- 將前面複製的 GitHub 或 Bitbucket 的 repository URL 貼到 [Source Path / URL]。
修改現有 repository URL
- 選擇一個 Repository,點選功能表 Repository > Repository Settings。
- 修改 Remote repository paths。
- 修改為 SSH URL。
設定完成後就會透過 SSH 的方式來連接,因為使用金鑰來做身分驗證,不會出現像使用 HTTPS 時叫你輸入帳號密碼,避免敏感資訊在網路上傳遞,只是要注意保存好私鑰,不要外流。
Reference
金鑰認證設定好,遠端登入沒煩惱。
http://neversaycoding.tumblr.com/post/94238914127
在 Windows 使用「非對稱金鑰」來遠端登入 SSH 的方法
http://www.vixual.net/blog/archives/190
Secure Shell
http://zh.wikipedia.org/wiki/Secure_Shell