之前使用Sourcetree都是通過(guò)HTTP/HTTPS的方式來(lái)管理項(xiàng)目,大多都是托管到GitHub、碼云等平臺(tái),最近在使用公司搭建的Git服務(wù)器時(shí),總是遇到權(quán)限的問(wèn)題而不能pull/push代碼,不知道是不是因?yàn)槭褂玫腍TTP的原因,最后考慮使用SSH的方式來(lái)管理項(xiàng)目代碼。
使用SSH,就需要在本機(jī)生成公私鑰,然后配置到相關(guān)的管理平臺(tái),這里GitLib 和 GitHub 來(lái)進(jìn)行說(shuō)明。
生成SSH公私鑰
打開(kāi)電腦終端,輸入以下SSH指令:
ssh-keygen -t rsa -C "gitSSH"
- -t 指定密鑰類(lèi)型,默認(rèn)是 rsa ,可以省略。
- -C 設(shè)置注釋文字,比如郵箱。
- -f 指定密鑰文件存儲(chǔ)文件名
如果不使用 -f 來(lái)指定文件名稱(chēng),會(huì)輸出如下來(lái)要求輸入文件名稱(chēng):
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
也可以不輸入,直接回車(chē),就會(huì)生成默認(rèn)文件名 id_rsa(私鑰) 和 id_rsa.pub(公鑰) 兩個(gè)秘鑰文件,推薦使用默認(rèn)名稱(chēng)。
打開(kāi)公鑰:
cat ~/.ssh/id_rsa.pub
復(fù)制輸出的字符串即可!
或者直接到.ssh文件夾找到id_rsa.pub(公鑰)文件,使用文本打開(kāi):
打開(kāi)Finder -> 前往 -> 個(gè)人
在此文件夾下會(huì)生成一個(gè).ssh 文件夾,里面包含有生成的公私鑰文件。
可以看到該文件夾默認(rèn)是隱藏掉的,如果找不到,可以在終端使用以下指令,顯示隱藏的文件夾:
defaults write com.apple.finder AppleShowAllFiles -bool true
PS:如果需要隱藏,將指令的最后的值改為false即可
配置公私鑰
打開(kāi)GitLib,點(diǎn)擊導(dǎo)航最右側(cè)的用戶(hù)頭像,在下拉列表中選擇 Settings :

打開(kāi)的用戶(hù)設(shè)置中,左側(cè)有SSH Keys選項(xiàng):

將公鑰復(fù)制粘貼到 key內(nèi)即可,title可自定義,也可使用粘貼后的默認(rèn)名稱(chēng),默認(rèn)是在輸入指令是 -C 指定的說(shuō)明字符串。
如果是使用的Github,同樣點(diǎn)擊最右側(cè)用戶(hù)頭像,在下拉列表中選擇 Settings ,在打開(kāi)的頁(yè)面右側(cè)選擇 SSH and GPG keys:

然后選擇New SSH key 即可!
使用Sourcetree 管理SSH
可以通過(guò)打開(kāi)的項(xiàng)目主頁(yè),右側(cè)的設(shè)置選項(xiàng),查看當(dāng)前使用何種方式來(lái)管理的項(xiàng)目,即遠(yuǎn)程Git倉(cāng)庫(kù)地址:

可以看到現(xiàn)在使用的是HTTPS的遠(yuǎn)程地址。
切換為SSH:方式一
Sourcetree 支持HTTPS和SSH的相互轉(zhuǎn)換,在標(biāo)簽頁(yè),選擇需要切換的標(biāo)簽,右鍵,選擇轉(zhuǎn)換成 SSH:

此時(shí),再去看遠(yuǎn)程倉(cāng)庫(kù)地址,就已經(jīng)變?yōu)镾SH的倉(cāng)庫(kù)地址了:

此時(shí),再在標(biāo)簽頁(yè),右鍵,可以看到轉(zhuǎn)換成 SSH 選項(xiàng)變成 轉(zhuǎn)換成 HTTPS選項(xiàng)了,再次選擇可以切換回HTTPS方式。
以上是使用Github的鏈接地址來(lái)進(jìn)行的,但是在使用Gitlib地址的時(shí)候,轉(zhuǎn)換就不成功,目前能夠想到的原因是,我們的Gitlib使用的是HTTP的鏈接,而不是HTTPS,可能兩者之間不能直接轉(zhuǎn)換,而我們的本地倉(cāng)庫(kù)沒(méi)有配置HTTPS,因此這個(gè)方法,暫時(shí)不能采用了。如果你們的Git倉(cāng)庫(kù)是HTTPS方式的,這樣切換應(yīng)該是沒(méi)有問(wèn)題的。那么,使用HTTP的就看方式二吧。
切換為SSH:方式二
打開(kāi)本地的項(xiàng)目文件夾,在根目錄下會(huì)有一個(gè).git文件夾,這個(gè)文件夾默認(rèn)也是隱藏的,怎么查看隱藏文件夾,看上面第一部分的指令。
打開(kāi)文件夾,找到config文件,使用文本打開(kāi):
其中,有一項(xiàng):[remote "origin"],將其中的url換成SSH地址即可:

然后,再打開(kāi)Sourcetree,就可以使用SSH的方式來(lái)管理項(xiàng)目了。
PS: 也可以不顯示隱藏文件,或者找不到config文件,可以點(diǎn)擊上圖中 編輯配置文件... 按鈕,會(huì)打開(kāi)當(dāng)前項(xiàng)目的Git配置文件。