前言
一般來說,我們從github克隆代碼,有兩個模式,一個是https
模式,一個是ssh
模式。
如果我麼沒有建立ssh
信任,是無法通過ssh
模式克隆代碼的。ssh
模式有一個優勢就是可以建立本地git工具和github服務器之間的信任,不需要使用賬號密碼登錄,尤其是我們push origin
提交服務器的時候,省去輸入賬號密碼的步驟。
場景
系統:ubuntu 18.04
工具:VSCode 1.31.1
工具:git 2.17.1
過程
- 本地準備SSH-KEY
打開終端,cd ~
進入根目錄,執行ssh keygen
,一路回車,生成本地的SSH-KEY,在目錄/home/myubuntu/.ssh
下分別是id_rsa
和id_rsa.pub
文件。其中id_rsa.pub
文件是公鑰,另一個id_rsa
是私鑰。公約提供給服務器,私鑰自己保留,在這裏,服務器就是github。 - 把SSH-KEY寫入服務器
登錄github,訪問https://github.com/settings/keys
頁面,主頁面有兩個模塊SSH keys
和GPG keys
,我們需要使用的是SSH keys
。右邊頁面有一個綠色按鈕New SSH key
,點擊會出現添加欄,分別是Title
和Key
。把本地文件id_rsa.pub
打開,可以在/home/myubuntu/.ssh
下執行命令vi id_rsa.pub
,完整複製粘貼到Key
輸入欄,Title
可以隨便命名,比如ubuntu key
,點擊下方的綠色按鈕Add SSH key
,保存成功。 - 在本地終端執行命令
ssh -T [email protected]
,會用本地祕鑰連接github主機,如果有提示You've successfully authenticated, but GitHub does not provide shell access.
代表連接成功。這時候可以通過ssh
從自己的github倉庫拉取項目了。拉取數據的時候必須選擇ssh
地址,複製到本地終端,進入存放代碼的目錄,執行命令git clone [email protected]:No2015/vue-cli3-typescript.git
。只有通過ssh
拉取的項目才能通過ssh
來控制。 - 本地項目克隆完畢,安裝依賴模塊,正常運行之後。如果修改成功,可以通過命令行執行
git add .
、git commit -m 'add all'
,git push origin master
三個命令提交代碼。或者通過VSCode工具提供的快捷方式提交。因爲有ssh
簽名的信任,賬號密碼都是免除了的,省事很多。
結語
之前搞了一小會兒,因爲項目是通過https
模式拉取下來的,ssh
建立之後還是需要輸入賬號密碼,折騰很長時間才發現,修改本地倉庫的remote就好了,或者刪除本地代碼,重新通過ssh
拉取新代碼。
修改本地倉庫地址的命令是git remote set-url origin [email protected]:No2015/vue-cli3-typescript.git