使用 SourceTree 使用 SSH 連接 Github

一直以來大多都習慣使用 HTTPS 的方式搭配二階段身份驗證的方式連接 github 進行版本控管,但以便利性而言 SSH 會是更方便的做法。

這篇以假設 SourceTree 已經安裝好的情境,若尚未安裝可以至 https://www.sourcetreeapp.com/ 進行下載

使用 SSH 的方式 clone 或是 commit push 資料至 github 相當容易

主要的流程與原理是這樣的,透過 key generator 產生出一組公鑰與私鑰

公鑰需設定至 github 上,而本機私透過私鑰來做身份驗證與資料解密

在這邊按下 Generate 即會幫我們產生出一組公鑰與私鑰了

Public key for pasting into OpenSSH authorized_keys file 裡的資訊即為公鑰的資料可以先複製下來

key passphrase 的部份即為私鑰存取時要開啟時一層密碼,建議設定,以免私鑰被偷了是可以直接被別人使用的

 

接著就可以到 Github 上面把公鑰的部份設定上去了

若設定完直接去 clone Github 的專案的話,會出現 authentication via ssh keys failed sourcetree 這樣的錯誤

則是因為 SourceTree 使用的身份驗證 Pageant 還少設定了 Private key

右鍵選取 view keys,並將剛剛產出的 private key (.ppk) 加進去即可,若有設定 key passphrase 的話,這邊會要求輸入密碼

接著 clone Github 的資料就正常了

 

 

HTTPS 可設定需搭配二階段身份驗證以達到安全性最佳的情況,但若使用不同裝置登入 Github 時就會要求使用手機的二階段驗證以確保帳戶並沒有被駭,當有家用電腦與公用電腦時較常會遇到這種情況,缺點即為較不便利。

設定 SSH 則代表任何人有你的私鑰 .PPK (裡面包含了公鑰的資訊) 皆可存取你的 Github 的資訊,優點是方便,但缺點就是優點所伴隨而來的 Github 只認 SSH  key。

 

若要每次開機都能自動幫你載入 ssh key 可以參考這篇使用 startup 的方式
https://talesfromthedatacenter.com/2019/12/how-to-automatically-load-pagent-keys-when-windows-10-boots/

 

參考資料

http://codeplanet.me/archives/2014/11/sourcetree-connect-github-bitbucket-use-ssh-on-windows/

https://talesfromthedatacenter.com/2019/12/how-to-automatically-load-pagent-keys-when-windows-10-boots/