天天看點

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

文章目錄

  • 摘要
  • 【配置 Git】
    • 配置使用者名和郵箱
  • 【設定【SSH Key】加密傳輸】
    • 目的
      • https 和 SSH 的差別
    • Git 操作
    • GitHub操作
    • 測試【SSH Key】
  • 注意事項
  • 總結
  • 思考

摘要

  1. 硬體環境:無特殊要求
  2. 軟體環境 :windows
  3. 講解了如何将本地項目同步或源碼庫同步到GitHub上。
  4. 【點選此處檢視 Git 的安裝教程】
  5. 在 MIniTTY 終端中

    【 按 上下鍵 可以 翻閱 曆史指令】

    【 按 Home 和 End 可以快速切換到 行首 和 行尾】

    【Delete 可以删除 後一個 字元】

【配置 Git】

優先級:

--local > --global > --system

用了

--global

這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置 ?_?

配置使用者名和郵箱

  1. 查詢和設定使用者名和郵箱:
git config -l 							# 檢視配置
git config --list						# 作用相同

git config --global user.name        	# 檢視使用者名
git config --global user.email       	# 檢視郵箱

git config --global user.name 使用者名  	# 修改使用者名
git config --global user.email 郵箱   	# 修改郵箱

           
  1. 檢視配置詳情

    【help.format=html】幫助文檔采用 html 文檔

    【core.editor=“URL” --wait】核心編輯器的位置,我采用的 VS code,安裝在圖中路徑。

    還未配置,所有圖中并沒有使用者名和郵箱的配置說明

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 檢視和設定使用者名和郵箱
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

4. 再次檢視配置詳情

顯示了使用者名和郵箱,說明配置成功。

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

【設定【SSH Key】加密傳輸】

目的

管理項目的時候,直接使用https url克隆到本地(對初學者來說會比較友善),還是使用 SSH url

克隆到本地(需要在克隆之前先配置和添加好 SSH key),

是以,如果你想要使用 SSH url 克隆的話,你必須是這個項目的擁有者。否則你是無法添加 SSH key 的。

https 和 SSH 的差別

  1. 前者可以随意克隆github上的項目,而不管是誰的;而後者則是你必須是你要克隆的項目的擁有者或管理者,且需要先添加 SSH key ,否則無法克隆。
  2. https url 在 push(本地傳到GitHub) 的時候是需要驗證使用者名和密碼的;而 SSH 在push的時候,是不需要輸入使用者名的,如果配置SSH key的時候設定了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。

Git 操作

許多 Git 伺服器都使用 SSH 公鑰進行認證。 為了向 Git 伺服器提供 SSH 公鑰,如果某系統使用者尚未擁有密鑰,必須事先為其生成一份。

  1. 檢查是否已經生成密鑰:
cd  ~/.ssh
           

cd ~/.ssh

】就是檢視Home目錄(Windows是Administrator目錄)下有沒有 .ssh 隐藏檔案夾

沒有生成如圖:

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 執行如下指令生成密鑰(公有/私有 密鑰對):

ssh-keygen -t rsa -C "郵箱"

ssh-keygen

】是指令辨別符;

-t rsa

】密鑰類型用 -t 選項指定,沒有指定預設生成用于SSH-2的RSA密鑰。這裡使用的是rsa(密鑰開頭的格式 看圖);

-C "注釋字段,随意填寫說明資訊"

】注釋字段,用-C來指定注釋,友善使用者辨別這個密鑰,指出密鑰的用途或其他有用的資訊。是以在這裡輸入自己的郵箱或者其他都行。

-f 檔案名

】指定密鑰檔案存儲檔案名,可省。

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 如上圖【操作】:
  2. 【Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):】 輸入儲存密鑰的檔案名,預設id_rsa(推薦)
  3. 【Enter passphrase (empty for no passphrase):】接着會讓輸入2次密碼(passphrase),空表示沒有密碼。該密碼是你【push】檔案的時候要輸入的密碼,而不是github管理者的密碼;3次回車即可完成目前步驟。
  4. (我的【push】密碼: 喜歡南,做個備忘);
  5. 注意:輸入密碼的時候沒得任何提示,但實際你已經輸入了。【切記】
  6. 密碼的作用,下次使用密鑰的時候需要輸入密碼;
  7. 【.ssh】隐藏檔案夾下生成了兩個檔案:【id_rsa】和【id_rsa.pub】
  8. 存放于【C:\Users\Administrator.ssh】隐藏檔案夾下
  9. 【Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.】

    【Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.】

    【id_rsa】猜測是私有密鑰,【id_rsa.pub】是公有密鑰。

  10. 【The key fingerprint is:

    SHA256:1xJagBF6mxd5ow3poBO2tgQs+bmaXYKOTVZf7UfNogQ [email protected]】

    不懂(?_?)

  11. 還有一個圖,不懂(?_?)
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

14. 檢視密鑰:

cat  ~/.ssh/id_rsa			# 檢視私鑰
cat  ~/.ssh/id_rsa.pub   	# 檢視公鑰
           
  1. 現在,進行了上述操作的使用者需要将各自的公鑰發送給任意一個 Git 伺服器管理者(假設伺服器正在使用基于公鑰的 SSH 驗證設定)。 他們所要做的就是複制各自的 .pub 檔案内容,并将其通過郵件發送。

    公鑰看起來是這樣的:

GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

16. 關于在多種作業系統中生成 SSH 密鑰的更深入教程,請參閱 GitHub 的 SSH 密鑰指南 https://help.github.com/articles/generating-ssh-keys

GitHub操作

  1. 按圖示步驟操作:
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. Title用來區分多個密鑰:(預設郵箱名?)
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 輸入自己GitHub 賬号的密碼,而不是上面剛剛設定的密碼
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 添加成功:
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考

測試【SSH Key】

1.輸入測試代碼:

ssh -T [email protected]
           
GitHub 的 Git 使用者名和郵箱配置+【SSH Key】加密傳輸摘要【配置 Git】【設定【SSH Key】加密傳輸】注意事項總結思考
  1. 【The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.

    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

    Are you sure you want to continue connecting (yes/no)?】警告資訊,輸入yes 回車即可。

  2. 【Warning: Permanently added ‘github.com,13.229.188.59’ (RSA) to the list of known hosts.】警告:永久添加“github.com,13.229.188.59”(RSA)到已知主機清單中。(【.ssh】檔案夾下生成一個【known_hosts】檔案)
  3. 【Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:】輸入你的【push】密碼剛剛設定的。
  4. 注意:輸入密碼時如果輸錯一個字就會不正确,使用删除鍵是無法更正的。
  5. 【Hi QMec/Test! You’ve successfully authenticated, but GitHub does not provide shell access.】QMec/Test倉庫名,确認是自己的,且顯示此資訊說明SSH設定成功,如果你看到 【access denied】 ,者表示拒絕通路,那麼你就需要使用 https 去通路,而不是 SSH 。

注意事項

  1. 密碼不能忘

總結

  1. 需要多參考幾篇文檔才能精通呀!
  2. 學習到 Linux 的指令是 Shell 語言,代碼塊應該使用 shell(bash 也可以)。

思考

  1. SSH加密傳輸的作用,我的了解是:可以防止其他人【push】檔案到你的GitHub倉庫。

【如果有什麼疑問或指正,請留言。】