先說一下本地和服務(wù)器間的ssh連接
一般使用ssh命令進行遠程登錄吱七,都要輸入口令踊餐。如果使用了ssh吝岭,則可以免密登錄吧寺。具體方法如下:
保證本地有ssh密鑰對稚机,一般默認的是id_rsa(私鑰),id_rsa.pub(公鑰)赖条。具體生成方法,可百度搜索碱茁,很容易仿贬。私鑰留在本機中诅蝶,將公鑰追加到服務(wù)器上的authorized_keys文件里退个,具體路徑為"~/.ssh/authorized_keys"。使用scp命令或者手動復(fù)制粘貼都可以调炬。
以上 就完成了本機與服務(wù)器間的ssh信任步驟。下次再登錄就可以不用輸密碼了缰泡。
先說一下場景:在服務(wù)器端部署項目時,一般都是從git服務(wù)中拉取的棘钞。但服務(wù)器不光自己用缠借,別人也會用宜猜,連接的git賬號也存在多個泼返。每個git賬號對應(yīng)的ssh也不一樣,這樣姨拥,服務(wù)器就會存在多個ssh密鑰對绅喉。那么叫乌,當(dāng)你使用服務(wù)器部署的時候柴罐,肯定要將你的ssh密鑰(服務(wù)器端存一個私鑰革屠,對應(yīng)的公鑰在git上添加)告訴你的git服務(wù)器似芝。如何告訴git 服務(wù)你要用哪個ssh呢国觉?
答案是:config文件!
在~/.ssh路徑下 創(chuàng)建config文件麻诀,有則不用創(chuàng)建了蝇闭。大致內(nèi)容如下
Host hostName
? ? ? ? HostName 你的git服務(wù)器的域名:一般是github.com,如果公司有自己的git域名,就添加在此處
? ? ? ? User? 你的git賬號名稱
? ? ? ? PreferredAuthentications publickey??
? ? ? ? IdentityFile? 你的私鑰存儲的路徑 如 ~/.ssh/xxx
這塊算是聲明了你要使用哪個密鑰硬毕,那么怎么告訴git呢呻引?這塊我真是浪費了半天的時間,因為看別人的文檔吐咳,被誤導(dǎo)了逻悠。這塊特別記錄一下:
在git clone的時候元践,我們一般是這么寫 git clone git@github.com:xxxxxx/xxxxx.git。好童谒。在這我們要做一些改動:git clone?git@hostName:xxxxxx/xxxxx.git 单旁。這樣clone的時候,服務(wù)器會去config文件里找到host名為hostName對應(yīng)的私鑰文件饥伊,與git上存放的公鑰進行加解密象浑,校驗是否合法。
以上就完成了git指定ssh的操作琅豆。
再多啰嗦一句:
系統(tǒng)默認的ssh文件名為:id_rsa,id_rsa.pub愉豺。如果你想改變系統(tǒng)默認的ssh,但又不想覆蓋原來的ssh文件茫因◎嚼梗可以這么做:ssh-add xxxx(你想用的私鑰文件) 即可。如果ssh-add 用不了节腐,需要先執(zhí)行這樣的命令:ssh-agentbash --login-i 即可外盯。