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方式來提交和克隆代碼。git

步驟1:檢查你的電腦上是否已經生成了SSH Key 
  在git bash下執行以下命令github

cd ~/.ssh ls

這兩個命令就是檢查是否已經存在id_rsa.pub或id_dsa.pub文件,若是文件已經存在,那麼你能夠跳過步驟2,直接進入步驟3。bash

步驟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上就能夠了。ssh

步驟3:添加SSH Key到Git服務器 
  這個因爲不一樣的Git服務器,在界面添加的區域不同,因此不作詳述,具體參照不一樣Git服務器本身的操做。 
  經歷了以上的三個步驟以後,你就能夠愉快的使用SSH URL的方式來提交和克隆項目的代碼了,而且不須要再頻繁的輸入帳號密碼,若是你以前已經一直使用https方式進行開發,當前想要切換成爲ssh方式進行開發,只須要執行以下幾步的操做便可:ide

git remote rm origin git remote add origin "Git倉庫的ssh格式地址" git push origin

在管理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方式來提交和克隆代碼。fetch

步驟1:檢查你的電腦上是否已經生成了SSH Key 
在git bash下執行以下命令ui

cd ~/.ssh ls

這兩個命令就是檢查是否已經存在id_rsa.pub或id_dsa.pub文件,若是文件已經存在,那麼你能夠跳過步驟2,直接進入步驟3。url

步驟2:建立一個SSH Key 
在git bash下執行以下命令spa

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
相關文章
相關標籤/搜索