Git使用手冊:HTTPS和SSH方式的區別和使用


在管理Git項目上,很多時候都是直接使用https url克隆到本地,當然也有有些人使用SSH url克隆到本地。這兩種方式的主要區別在於:使用https url克隆對初學者來說會比較方便,復制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代碼都需要輸入賬號和密碼,這也是https方式的麻煩之處。而使用SSH url克隆卻需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的話,你必須是這個項目的擁有者。否則你是無法添加SSH key的,另外ssh默認是每次fetch和push代碼都不需要輸入賬號和密碼,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設置。前面的幾篇介紹Git的博客里面采用的都是https的方式作為案例,今天主要是記錄如何配置使用ssh方式來提交和克隆代碼。
一.使用ssh方式(不配置ssh,每次Git clone 和push 都要輸入用戶名和密碼)
(1)配置ssh
步驟1:檢查你的電腦上是否已經生成了SSH Key   在git bash下執行如下命令 cd
~/.ssh ls 這兩個命令就是檢查是否已經存在id_rsa.pub或id_dsa.pub文件,如果文件已經存在,那么你可以跳過步驟2,直接進入步驟3。 步驟2:創建一個SSH Key   在git bash下執行如下命令 ssh-keygen -t rsa -C "你的email地址" 代碼參數含義: -t指定密鑰類型,默認是rsa,可以省略。 -C設置注釋文字,比如郵箱。 -f指定密鑰文件存儲文件名。 以上命令省略了-f參數,因此,運行上面那條命令后會讓你輸入一個文件名,用於保存剛才生成的SSH key代碼,如: Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] 當然,你也可以不輸入文件名,使用默認文件名(推薦),那么就會生成id_rsa和id_rsa.pub兩個秘鑰文件。 接着又會提示你輸入兩次密碼(該密碼是你push文件的時候要輸入的密碼,而不是github管理者的密碼),當然,你也可以不輸入密碼,直接按回車。那么push的時候就不需要輸入密碼,直接提交到Git服務器上了,如: Enter passphrase (empty for no passphrase): Enter same passphrase again: 接下來,就會顯示如下一些提示,如: Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db 你的email地址 當你在Git Bash上看到這段顯示的時候,那就說明,你的SSH key已經創建成功,你只需要添加到Git服務器上的SSH key上就可以了。 步驟3:添加SSH Key到Git服務器   這個由於不同的Git服務器,在界面添加的區域不一樣,所以不做詳述,具體參照不同Git服務器自己的操作。   經歷了以上的三個步驟之后,你就可以愉快的使用SSH URL的方式來提交和克隆項目的代碼了,並且不需要再頻繁的輸入賬號密碼,如果你之前已經一直使用https方式進行開發,當前想要切換成為ssh方式進行開發,只需要執行如下幾步的操作即可: git remote rm origin git remote add origin "Git倉庫的ssh格式地址" git push origin

(2)使用命令行方式,上面三個步驟完成之后,打開GitBash,下面以碼雲為例
步驟1.輸入一下命令: ssh -T git@git.oschina.net
如果生成密匙的時候有配置密碼:這里要輸入密碼;沒設置不需要輸入,有歡迎信息出現

測試成功后,pull fetch,push的時候都需要輸入生成密匙的時候輸入的密碼,如果生成密匙的時候沒有設置密碼就不用輸入,不過設置密碼更安全一些,建議設置

(3)使用TortoiseGit,這里又有兩種方式...
方法1.

   步驟1.調整tortoisegit的settings中的network選項,將tortoisegitplink.exe改成git安裝目錄的下bin\ssh.exe。


步驟2.點擊git clone就可以了

測試成功后,pull fetch,push的時候都需要輸入生成密匙的時候輸入的密碼,如果生成密匙的時候沒有設置密碼就不用輸入,不過設置密碼更安全一些,建議設置

方法2.

步驟1.用puttygen(在TortoiseGit目錄里面)打開(conversions>import key),選擇生成的id_rsa文件(如果生成ssh的時候有設置密碼,會提示輸入密碼,如下圖)

步驟2.然后再點擊下面的Save private key按鈕,保存為id_rsa文件,會生成id_rsa.ppk文件,然后把id_rsa.ppk文件放到.ssh目錄下就可以了

步驟3.
在tortoisegit上使用密鑰:在git clone的時候使用,勾選load putty key,選擇剛剛保存的putty私鑰,這樣就可以搞定了。
 
         
總結:git bash使用openssh連接,而tortoisegit使用PuTTY連接,誰也不礙着誰,他們公鑰相同,密鑰不同,
git bash使用id_rsa文件,
tortoisegit使用id_rsa.ppk文件
git bash和tortoisegit都使用id_rsa.pub文件
 
測試成功后,只有第一次使用得時候需要輸入生成密匙的時候輸入的密碼,如果生成密匙的時候沒有設置密碼就不用輸入,不過設置密碼更安全一些,建議設置
 
         
 
         
二.使用Https方式(不配置,每次clone 和push 都要輸入用戶名和密碼) 
當你配置好git后,在C:\Documents and Settings\Administrator\ 目錄下有一個  .gitconfig 的文件,里面會有你先前配好的name 和email,只需在下面加一行或者直接打開
TortoiseGit設置


[credential]      
    helper = store 
 
         

   下次再輸入用戶名 和密碼 時,git就會記住,從而在C:\Documents and Settings\Administrator\ 目錄下形成一個  .git-credentials 文件,里面就是保存的你的用戶名和密碼。

 

https://username:12345678@git.oschina.net

  

 
        

 


免責聲明!

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



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