如果玩兒過github或者gitlab的話塘匣,大家都知道有2種克隆文件的方式丰包,https和ssh褒纲。
https克隆寫法為:git clone https://github.com/FrankKai/machine-learning-notes.git
。
ssh克隆寫法為:git clone git@github.com:FrankKai/machine-learning-notes.git
荐开。
寫法上大同小異模孩,無外乎是更換了一下協(xié)議名稱尖阔,那么從開發(fā)效率上來說,哪種方式更方便快捷呢榨咐?
答案就是ssh介却。
因?yàn)閔ttps克隆時(shí),每次都需要輸入賬號(hào)和密碼块茁,比較麻煩齿坷。
而ssh的話,只需要首次在本地生成一個(gè)ssh公鑰数焊,然后在遠(yuǎn)端添加永淌,后面就不用再輸賬號(hào)密碼了。(至于ssh與https兩種協(xié)議安全性之間的對(duì)比佩耳,這種級(jí)別的問題還不是現(xiàn)在的我現(xiàn)在要去考慮的)
我們回過頭來繼續(xù)看ssh仰禀。ssh,是使用git進(jìn)行多人合作的必會(huì)知識(shí)蚕愤,最近我就因?yàn)閷?duì)其掌握不精通答恶,導(dǎo)致鬧出了一個(gè)多個(gè)git地址需要多臺(tái)計(jì)算機(jī)的笑話。
原理方面暫不深究萍诱,我只講一下幾個(gè)工作中非常需要注意的點(diǎn)悬嗓,我將以windows系統(tǒng)為例。
目錄:C:\Users\frank.ssh
私鑰:id_rsa(不用理會(huì))
公鑰:id_rsa.pub(重要文件裕坊,本地和遠(yuǎn)端建立連接的憑證包竹,包括ssh-rsa,公鑰串和郵箱)
主機(jī):known_hosts(所有已添加過SSH連接的域名籍凝,ip周瞎,ssh-rsa以及類似公鑰的密碼串)
如果看了我的描述理解很模糊,可以自己打開文件看下其中的內(nèi)容饵蒂,眼見為真声诸,也更容易去理解和記憶。
我們知道git倉庫有很多種退盯,github彼乌,gitlab,碼云渊迁,以及阿里云的云效慰照,可以簡(jiǎn)單將其理解為一個(gè)專門用來存放代碼的在線數(shù)據(jù)庫。
現(xiàn)在我本機(jī)已經(jīng)配置了github琉朽,gitlab以及碼云毒租,如果我想再配置阿里云的云效,該怎么做箱叁?
第一步:配置git全局用戶名和郵箱
git config --global user.name "frank"
git config --global user.email "12345678@qq.com"
第二步:克隆項(xiàng)目
git clone git@code.aliyun.com:schbrain/boat-app.git
此時(shí)會(huì)報(bào)錯(cuò):pemission denied(publickey)
這時(shí)就需要生成客戶端與主機(jī)之間的ssh key了墅垮。
第三步:生成ssh-key公鑰
ssh-keygen -t rsa -C "12345678@qq.com"
第四步:查看ssh-key公鑰
C:\Users\frank\.ssh\id_rsa.pub
如果是linux系統(tǒng),可以到指定目錄使用cat命令查看蝌蹂,但是由于我們是windows系統(tǒng)噩斟,因此此處需要使用記事本,sublime text等文本編輯器去打開孤个。
復(fù)制文件中的全部?jī)?nèi)容為第五步做準(zhǔn)備剃允。
第五步:添加ssh-key公鑰到目標(biāo)倉庫
不同git倉庫路徑不一樣,此處以阿里云的云效為例齐鲤。
https://code.aliyun.com/
→https://code.aliyun.com/profile
→https://code.aliyun.com/profile/keys
如果對(duì)這5步操作步驟不清晰斥废,可以再仔閱讀下文件說明部分。
聲明一下给郊,這篇文章主要是以應(yīng)用為主牡肉,其中的ssh key私鑰,公鑰以及已知主機(jī)文件背后的生成算法淆九,以及本地和遠(yuǎn)端如何通過公鑰進(jìn)行認(rèn)證等算法统锤,這里不需要去管毛俏,涉及到的知識(shí)點(diǎn)實(shí)在太多了。
That's it !
期待和大家交流饲窿,共同進(jìn)步煌寇,歡迎大家加入我創(chuàng)建的與前端開發(fā)密切相關(guān)的技術(shù)討論小組:
- SegmentFault技術(shù)圈:ES新規(guī)范語法糖
- SegmentFault專欄:趁你還年輕,做個(gè)優(yōu)秀的前端工程師
- 知乎專欄:趁你還年輕逾雄,做個(gè)優(yōu)秀的前端工程師
- Github博客: 趁你還年輕233的個(gè)人博客
- 前端開發(fā)QQ群:660634678
微信公眾號(hào): 人獸鬼 / excellent_developers
努力成為優(yōu)秀前端工程師阀溶!