最近換了台新電腦, MacBook pro,拿到新電腦之后小小心喜了一下(終於解脫windows的束縛擁抱mac啦), 然后就開始苦逼的安裝各種開發環境了。
之前在windows上使用tortoiseGit作為git客戶端,使用putty作為ssh代理工具獲取公司自己搭建的私有git服務器上, putty下的秘鑰文件格式為*.ppk,這樣在拉取項目時只需要手動添加ppk到putty中就行了。
然而並沒有mac版的torisegit,決定選用sourcetree作為git客戶端,但sourcetree只支持github和bitbucket平台,並不支持基於ssh協議的遠程git倉庫,無奈只能決定從終端配置ssh秘鑰, 然后再用soucetree拉取。
場景:
MacOS High Sierra: 10.13.2
git: v2.16.2
souretree:2.7.1
由於Mac基於unix,而linux和unix自帶的實現ssh協議的工具是openSSH,openSSH的秘鑰格式為*.pem, 所以,要想使用windows的ppk文件, 需要把ppk文件轉換為pem文件,然后連接即可。
有兩種方式可將ppk文件轉換為pem文件,1 在windows下使用puttygen下轉換, 2 在mac下使用putty轉換,現介紹第二種方法,
1. 在mac終端中使用homebrew安裝putty(homebrew是mac下的包管理器)$ brew install putty, 同時會安裝puttygen
2. 轉換: $ puttygen xxx.ppk -O private-openssh -o xxx.pem
3. 在 ~/.ssh/文件夾中建立config文件, 無后綴名,輸入一下內容
Host alias # 別名 HostName git.company.com #ip地址或域名 User git #要登錄的遠程git服務器的用戶名,一般為git IdentityFile /users/huxuezhi/.ssh/xxx.pem # 制定秘鑰文件的位置 IdentitiesOnly yes # 可寫可不寫,表示只用秘鑰文件認證
然后就可以在終端里訪問git倉庫了,
使用: git clone git@alias:some_repo.git
是不是可以正常拉取了。
回到sourcetree,直接從URL新建倉庫, 輸入git@alias:some_repo.git或git@git.company.com:some_repo.git,就可以直接拉取了,好了,趕快開始你愉快的開發吧。
總結: 在困惑一件事情的時候要弄清楚與它相關聯的其他技術,這樣才能全面的考慮問題原因,精確找到答案,縮短困惑時間,提升幸福感。