Git倉庫由HTTPS切換成ssh秘鑰連接


Git關聯遠程倉庫可以使用https協議或者ssh協議。

【特點/優缺點】
ssh:
一般使用22端口;
通過先在本地生成SSH密鑰對再把公鑰上傳到服務器;
速度較慢點

https:
一般使用443端口;
通過用戶名/密碼授權,可用性比較高;
速度較快點
一般企業防火牆會打開80和443這兩個http/https協議的端口,因此在架設了企業防火牆的時候使用https就可以很好的繞開安全限制使用git了,很方便;而對於ssh來說,企業防火牆很可能沒打開22端口。

【使用區別】
clone項目:
  使用ssh方式時,需要配置ssh key,即要將生成的SSH密鑰對的公鑰上傳至服務器;
  使用https方式時,沒有要求,可以直接克隆下來。

push項目:
  使用ssh方式時,不需要驗證用戶名和密碼,之前配置過ssh key,(如果你沒設置密碼)直接push即可;
  使用https方式時,需要驗證用戶名和密碼。

【總結】
HTTPS利於匿名訪問,適合開源項目,可以方便被別人克隆和讀取(但沒有push權限);
SSH不利於匿名訪問,比較適合內部項目,只要配置了SSH公鑰極可自由實現clone和push操作。

鑒於公司突然由Git倉庫由HTTPS切換成ssh秘鑰連接,做一些該方面的博客整理。

1、生成密鑰對
2、設置遠程倉庫上的公鑰
3、把git的 remote url 修改為git協議(以上兩個步驟初次設置過以后,以后使用都不需要再次設置,此步驟視以后項目的remote url而定,如果以后其他項目的協議為https則需要此步驟)

1、生成密鑰對
$ ssh-keygen -t rsa -C "your_email@youremail.com"
1 Generating public/private rsa key pair.
2 Enter file in which to save the key (/home/you/.ssh/id_rsa):
3 Created directory '/c/Users/Administrator/.ssh'.
4 Enter passphrase (empty for no passphrase):
5 Enter same passphrase again:
第2條:秘鑰存儲的位置,建議不要修改位置
第4/5條:秘鑰口令密碼,建議不設置,直接回車

注:若之前設置有ssh公鑰,找不到的話,直接覆蓋掉即可

查看已有秘鑰:上面創建時有提示秘鑰位置,找到文件id_rsa.pub,用編輯器打開,復制出公鑰

2、設置遠程倉庫上的公鑰
在遠程倉庫中,右上角頭像-設置-SSH公鑰,把公鑰粘貼到輸入框中,設置公鑰有效期,然后點擊添加公鑰

測試SSH連接
GitHub
$ ssh -T git@github.com(填寫自己倉庫的SSH連接)

3、把git的 remote url 修改為git協議
$ git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)

復制此ssh連接,然后使用命令** git remote set-url** 來調整你的url
$ git remote set-url origin git@github.com:someaccount/someproject.git

//第一次連接
$ git remote add origin git@gitee.com:qiphon/music-thumb.git
$ git push -u origin master

然后你可以再用命令 git remote -v 查看一下,url是否已經變成了ssh地址

最后驗證一下是否成功
$ git pull

——紙上得來終覺淺,絕知此事要躬行——

參考鏈接1:https://www.cnblogs.com/wannananana/p/12059806.html
參考鏈接2:https://www.cnblogs.com/wangdapang/p/10181823.html
參考鏈接3:https://blog.csdn.net/qiphon3650/article/details/79376028
參考鏈接4:https://www.cnblogs.com/dayang12525/p/12509053.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM