iT邦幫忙

1

Git SSH

  • 分享至 

  • xImage
  •  

今天要來介紹一些SSH的操作及相關指令,一般我們要連結到遠端server通常都要透過git push origin master,這種方式需要登入帳密,且容易被駭客盜用,也較為複雜,而SSH就可以避免這些問題。

SSH機制:

1.Local端也就是我們會有兩把key,分別為public key, private key,而我們將public key傳至server端,所以server端會有一把public key。

2.當Local端發起SSH連接以後,server會回傳一段random message給Local端。

3.而我們在收到message後,利用private對message去做加密,以後再回傳給遠端,遠端再用public key去解密,如果message吻合,則完成SSH連接。

詳細流程如下圖:

https://ithelp.ithome.com.tw/upload/images/20200604/20126182Kjm7zbTTsL.png

而我們在Git實際操作一下。

1.cd ~/.ssh : 首先先檢查ssh key是否存在

如果存在直接通過 ssh-key =>ssh-keygen來產生ssh。

如果不存在,我們就利用ssh-keygen -t rsa -C "your_email@youremail.com":產生一個新的SSH key。

此時去存在ssh key的目錄(cd .ssh/)可發現有兩個file,一個為id_rsa(private key)、另一個為id_rsa.pub(public key)。

2.再來,我們將local端所產生的public key傳至遠端server,ssh-copy-id -i ~/.ssh/mykey user@host:可將local端的public key 傳至指定的server端,這時候可利用ssh (遠端server),發現已經不需再次輸入密碼登入了。

https://ithelp.ithome.com.tw/upload/images/20200604/20126182JiSsu9tXJP.png

如何將SSH public key傳至遠端github呢?

1.首先先進入setting,裡面有SSH and GPG Key的option,點選進去可以去new 一個 key。

2.接著more id_rsa.pub獲取local public key的資料並貼到github new SSH key的地方。

https://ithelp.ithome.com.tw/upload/images/20200604/201261820gnm6fMWOb.png

但此時再次git push origin master,發現仍然需要輸入密碼,是因為我們這個local倉庫是經由https git clone來的,所以我們倉庫預設是由Https做驗證,他不會走SSH。

https://ithelp.ithome.com.tw/upload/images/20200604/20126182shewtn0lMR.png

3.我們可以利用vim .git/config 更改資料中url,至github點選clone地方將 clone with https 改為 clone with ssh並將其url 覆蓋上去即可。

https://ithelp.ithome.com.tw/upload/images/20200604/20126182jtmUAGd8oV.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言