IDEA中Git使用http協議和ssh協議的區別

2021-10-02 17:41:07 字數 1999 閱讀 6824

https協議,ssh協議進行**的推送/拉取

原理上區別?

外觀上區別?

ssh協議的:git@gitlab:hustle/backend/bigdata/bd-api.git

http協議的:http://gitlab/hustle/backend/bigdata/bd-api.git

http協議(新,github目前就使用了這種協議):支援讀寫模式。既可以像git://協議一樣設定匿名服務,又可以像ssh一樣提供傳輸時的授權和加密,而且只用乙個url就可以得到git://和ssh的功能,省去了為不同的需求設定不同的url。 http協議推送(push)以及拉取(pull),伺服器都會詢問你的使用者名稱和密碼。

http協議的優點: 不同的訪問方式只需要乙個url,伺服器只在需要授權時提示輸入授權資訊。

相對於ssh而言,不需要生成ssh秘鑰對再把秘鑰上傳到伺服器上。

http/s被廣泛採用,一般的企業防火牆都會允許這些埠的資料通過。

缺點: 在一些伺服器上,架設http/s協議會比ssh協議棘手一些;每次需要輸入使用者名稱和密碼,管理這些憑證會比較麻煩一些(當然你可以使用憑證儲存工具,keychain(osx))。

除此之外沒有別的缺點。

ssh 為 secure shell 的縮寫,是一種網路安全協議,專為遠端登入會話和其他網路服務提供安全性的協議。通過使用 ssh,可以把傳輸的資料進行加密,有效防止遠端管理過程中的資訊洩露問題。

從客戶端來看,有兩種驗證方式:基於密碼、基於金鑰

說明:(1) 首先在客戶端生成一對金鑰(公鑰、私鑰);

(2) 客戶端將生成的公鑰拷貝到需要訪問的服務端機器上;

(3) 當客戶端再次傳送乙個連線請求,包括 ip、使用者名稱;

(4) 服務端得到客戶端的請求後,會到 authorized_keys 中查詢,如果有相應的 ip 和使用者,就會隨機生成乙個字串,例如:qwer;

(5) 服務端將使用客戶端拷貝過來的公鑰對隨機字串 qwer 進行加密,然後傳送給客戶端;

(6) 得到服務端發來的訊息後,客戶端會使用私鑰進行解密,然後將解密後的字串傳送給服務端;

(7) 服務端接受到客戶端發來的字串後,跟之前的字串進行對比,如果一致,就允許免密碼登入。

專案右鍵-》git -》 repository -》 remote -》選擇http協議的位址

生成秘鑰請參考

ssh公鑰預設儲存在賬戶的主目錄下的~/.ssh目錄。

//git bash

$ cd ~/.ssh

$ ls

id_rsa id_rsa.pub known_hosts

id_rsa或id_rsa檔案是金鑰。

.pub字尾的檔案是公鑰

通過ssh-keygen建立ssh公鑰,要求輸入密碼時留空就可以在使用的時候不輸入。

使用cat ~/.ssh/id_rsa.pub檢視公鑰.

注意:1)http協議的url中包含此協議,直接選擇即可在idea中使用

2)ssh協議使用前必須配置本地和gitlab的公鑰,然後才能在idea中使用

IDEA中Git的使用

工作中多人使用版本控制軟體協作開發,常見的應用場景歸納如下 假設小組中有兩個人,組長小張,組員小袁 場景一 小張建立專案並提交到遠端git倉庫 場景二 小袁從遠端git倉庫上獲取專案原始碼 場景三 小袁修改了部分原始碼,提交到遠端倉庫 場景四 小張從遠端倉庫獲取小袁的提交 場景五 小袁接受了乙個新功...

IDEA中Git的使用

工作中多人使用版本控制軟體協作開發,常見的應用場景歸納如下 假設小組中有兩個人,組長小張,組員小袁 場景一 小張建立專案並提交到遠端git倉庫 場景二 小袁從遠端git倉庫上獲取專案原始碼 場景三 小袁修改了部分原始碼,提交到遠端倉庫 場景四 小張從遠端倉庫獲取小袁的提交 場景五 小袁接受了乙個新功...

使用git提交中刪除idea

先有專案,然後分享至github,沒有新增gitignore,導致.idea檔案同樣上傳。想刪除.idea辦法 你要先去刪除遠端的 idea 目錄。這種情況,你是在設計gitignore 之前就沒考慮好的,現在的措施是 rm rf idea 這樣會刪掉你本地的,不過你重新開啟一次專案就有會自動給你生...