文章目錄
- 摘要
- 【配置 Git】
-
- 配置使用者名和郵箱
- 【設定【SSH Key】加密傳輸】
-
- 目的
-
- https 和 SSH 的差別
- Git 操作
- GitHub操作
- 測試【SSH Key】
- 注意事項
- 總結
- 思考
摘要
- 硬體環境:無特殊要求
- 軟體環境 :windows
- 講解了如何将本地項目同步或源碼庫同步到GitHub上。
- 【點選此處檢視 Git 的安裝教程】
-
在 MIniTTY 終端中
【 按 上下鍵 可以 翻閱 曆史指令】
【 按 Home 和 End 可以快速切換到 行首 和 行尾】
【Delete 可以删除 後一個 字元】
【配置 Git】
優先級:用了
--local > --global > --system
這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置 ?_?
--global
配置使用者名和郵箱
- 查詢和設定使用者名和郵箱:
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 郵箱 # 修改郵箱
-
檢視配置詳情
【help.format=html】幫助文檔采用 html 文檔
【core.editor=“URL” --wait】核心編輯器的位置,我采用的 VS code,安裝在圖中路徑。
還未配置,所有圖中并沒有使用者名和郵箱的配置說明
- 檢視和設定使用者名和郵箱
4. 再次檢視配置詳情
顯示了使用者名和郵箱,說明配置成功。
【設定【SSH Key】加密傳輸】
目的
管理項目的時候,直接使用https url克隆到本地(對初學者來說會比較友善),還是使用 SSH url
克隆到本地(需要在克隆之前先配置和添加好 SSH key),
是以,如果你想要使用 SSH url 克隆的話,你必須是這個項目的擁有者。否則你是無法添加 SSH key 的。
https 和 SSH 的差別
- 前者可以随意克隆github上的項目,而不管是誰的;而後者則是你必須是你要克隆的項目的擁有者或管理者,且需要先添加 SSH key ,否則無法克隆。
- https url 在 push(本地傳到GitHub) 的時候是需要驗證使用者名和密碼的;而 SSH 在push的時候,是不需要輸入使用者名的,如果配置SSH key的時候設定了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。
Git 操作
許多 Git 伺服器都使用 SSH 公鑰進行認證。 為了向 Git 伺服器提供 SSH 公鑰,如果某系統使用者尚未擁有密鑰,必須事先為其生成一份。
- 檢查是否已經生成密鑰:
cd ~/.ssh
【
cd ~/.ssh
】就是檢視Home目錄(Windows是Administrator目錄)下有沒有 .ssh 隐藏檔案夾
沒有生成如圖:
- 執行如下指令生成密鑰(公有/私有 密鑰對):
【
ssh-keygen -t rsa -C "郵箱"
】
【
ssh-keygen
】是指令辨別符;
【
-t rsa
】密鑰類型用 -t 選項指定,沒有指定預設生成用于SSH-2的RSA密鑰。這裡使用的是rsa(密鑰開頭的格式 看圖);
【
-C "注釋字段,随意填寫說明資訊"
】注釋字段,用-C來指定注釋,友善使用者辨別這個密鑰,指出密鑰的用途或其他有用的資訊。是以在這裡輸入自己的郵箱或者其他都行。
【
-f 檔案名
】指定密鑰檔案存儲檔案名,可省。
- 如上圖【操作】:
- 【Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):】 輸入儲存密鑰的檔案名,預設id_rsa(推薦)
- 【Enter passphrase (empty for no passphrase):】接着會讓輸入2次密碼(passphrase),空表示沒有密碼。該密碼是你【push】檔案的時候要輸入的密碼,而不是github管理者的密碼;3次回車即可完成目前步驟。
- (我的【push】密碼: 喜歡南,做個備忘);
- 注意:輸入密碼的時候沒得任何提示,但實際你已經輸入了。【切記】
- 密碼的作用,下次使用密鑰的時候需要輸入密碼;
- 【.ssh】隐藏檔案夾下生成了兩個檔案:【id_rsa】和【id_rsa.pub】
- 存放于【C:\Users\Administrator.ssh】隐藏檔案夾下
-
【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】是公有密鑰。
-
【The key fingerprint is:
SHA256:1xJagBF6mxd5ow3poBO2tgQs+bmaXYKOTVZf7UfNogQ [email protected]】
不懂(?_?)
- 還有一個圖,不懂(?_?)
14. 檢視密鑰:
cat ~/.ssh/id_rsa # 檢視私鑰
cat ~/.ssh/id_rsa.pub # 檢視公鑰
-
現在,進行了上述操作的使用者需要将各自的公鑰發送給任意一個 Git 伺服器管理者(假設伺服器正在使用基于公鑰的 SSH 驗證設定)。 他們所要做的就是複制各自的 .pub 檔案内容,并将其通過郵件發送。
公鑰看起來是這樣的:
16. 關于在多種作業系統中生成 SSH 密鑰的更深入教程,請參閱 GitHub 的 SSH 密鑰指南 https://help.github.com/articles/generating-ssh-keys
GitHub操作
- 按圖示步驟操作:
- Title用來區分多個密鑰:(預設郵箱名?)
- 輸入自己GitHub 賬号的密碼,而不是上面剛剛設定的密碼
- 添加成功:
測試【SSH Key】
1.輸入測試代碼:
ssh -T [email protected]
-
【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 回車即可。
- 【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】檔案)
- 【Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:】輸入你的【push】密碼剛剛設定的。
- 注意:輸入密碼時如果輸錯一個字就會不正确,使用删除鍵是無法更正的。
- 【Hi QMec/Test! You’ve successfully authenticated, but GitHub does not provide shell access.】QMec/Test倉庫名,确認是自己的,且顯示此資訊說明SSH設定成功,如果你看到 【access denied】 ,者表示拒絕通路,那麼你就需要使用 https 去通路,而不是 SSH 。
注意事項
- 密碼不能忘
總結
- 需要多參考幾篇文檔才能精通呀!
- 學習到 Linux 的指令是 Shell 語言,代碼塊應該使用 shell(bash 也可以)。
思考
- SSH加密傳輸的作用,我的了解是:可以防止其他人【push】檔案到你的GitHub倉庫。
【如果有什麼疑問或指正,請留言。】