GitHub如果使用HTTPS方式連接,要一直輸入GitHub的賬號密碼,很麻煩,如果用SSH方式就不需要了
本文就介紹一下如何配置SSH連接,包括生成添加SSH密鑰
以及如果GitHub用的SSH密鑰密碼忘了,或者想去掉密鑰的密碼,以及更換密鑰的方式
1. 先看看本地有沒有SSH密鑰
- 打開git bash,輸入:
ls -al ~/.ssh
如下圖,看到了類似 .id_rsa.pub 的字樣的文件名,公鑰的文件名一般是這個,找到了說明本地有。
2. 生成/修改密鑰
- 生成SSH密鑰的指令如下,想要修改也是用這個先生成再覆蓋
ssh-keygen -t rsa -b 4096 -C "yourid@email.com"
把上面的yourid@email.com替換成你的郵箱
結果如下圖,這里讓你指定存密鑰的路徑,可以直接敲回車,讓它按默認路徑就好,默認路徑就是后面括號里的。
- 如果之前在這個默認位置設置過密鑰,這里就會問你要不要覆蓋之前的密鑰,我們的目的正是修改!直接輸入y,Yes!
- 然后讓你設置密碼,可以不用設,設的話每次都都要輸入,很麻煩,不設就直接敲回車跳過。(我這里設了)
- 看到這個頁面就說明成功生成密鑰啦!
3. 把SSH密鑰添加到ssh-agent
- 啟動一下ssh-agent
eval $(ssh-agent -s)
結果如下
- 把SSH私鑰添加到ssh-agent
ssh-add ~/.ssh/id_rsa
有密碼的要輸一手密碼,結果如下就是添加好了
4. 把SSH密鑰添加到GitHub賬戶里
- 先把密鑰復制一下
可以在git bash里用如下命令
clip < ~/.ssh/id_rsa.pub
自己找到文件手工復制也行
- 打開GitHub,右上角在點自己頭像,進入Settings
- 點 SSH and GPG keys
如果之前有過密鑰,要修改是下面這樣子
沒有就是這個樣子
- 之前的密鑰不要的就點Delete給刪除。然后新建一個,點 New SSH key
- Key里把之前復制好的密鑰粘貼進去
- Title隨自己心情給自己的密鑰起個名字
- 點 Add SSH key添加
像這樣子就好了
- git bash 里可以測試一下有沒有正常工作
ssh -T git@github.com
像下面這樣出現 Hi! +用戶名就是正常了
如果是第一次添加SSH,還應該會問你
Are you sure you want to continue connecting? 選擇yes就行了
5. 測試使用ssh地址clone倉庫
- 隨便找個倉庫選ssh地址復制
- git bash 中用git的地址clone
git clone git@github.com:Zolich666/Information-Integration.git
- 如果密鑰設置了密碼,clone還得輸密碼
- OK!成功,之后的push操作就可以用SSH協議的方式了!
6. 把遠程倉庫的URL從HTTPS改成SSH
那么如果是之前用HTTPS方式clone下來的倉庫想改成使用SSH的方式怎么辦呢?
- 將路徑改為某個之前clone的倉庫下
- 獲取一下要更改的倉庫名稱,看看是不是HTTPS方式
git remote -v
我這樣https://打頭的就說明這個倉庫是HTTPS方式的
- 用 set-url修改URL為SSH的形式
git remote set-url origin git@github.com:Zolich666/Notes-of-Learning.git
兩種方式URL的區別如下
HTTPS方式
https://github.com/USERNAME/REPONAME.git
SSH方式
git@github.com:USERNAME/REPONAME.git
- OK,完了再用git remote -v檢查一下有沒有修改成功
這樣就改好了
7. 嘗試一下push
- 隨便修改一下倉庫的內容,push一下看看情況
成功!這次沒讓我輸入GitHub賬號密碼了
但是,如果密鑰設置了密碼,這里還是會讓你輸入密碼。。。
還想BB幾句
感謝你看到這里!我是在努力code,剛嘗試寫博的小白zolich。我喜歡看簡單細致的教程學習,我也想把自己的學習心得寫成這種形式,幫助自己記憶,也希望幫到像我一樣在努力學習的人。
如果這篇文章對你有一點點幫助的話,順手推薦or收藏or分享下吧~拜托啦,這對我真的很重要!還想看這種類型的文章的話加個關注吧!你的支持是對我最大的鼓勵!
水平所限,如有疏漏,歡迎指正~