優點:
提高安全性和便利性:使用SSH金鑰對而不是傳統的密碼進行身份驗證,可以增強安全性。 因為私鑰是不會被傳輸的,僅在本地計算機上使用。 這樣即使傳輸過程中的資料被攔截,沒有對應的私鑰,資料也無法被解密。
簡化操作流程:配置SSH後,每次提交程式碼時不需要重複輸入使用者名稱和密碼,這大大簡化了操作流程,提高了開發效率。
具體步驟
1.檢查本地SSH金鑰
在git bash
使用如下命令 看是否存在 id_rsa 和 id_rsa.pub檔案,如果存在,說明已經有SSH Key
cd ~/.ssh ls
出現下文內容證明已經存在ssh key
若不存在,則
2. 生成 ssh key
使用命令生成新的金鑰對。
ssh-keygen -t rsa -C "youremail@example.com"。 // 其中,youremail@example.com應替換為你的郵箱地址 // 執行後一直回車即可
3. 獲取並儲存公鑰內容
生成以後返回第一步檢查是否成功生成,確認生成之後,使用命令檢視並儲存公鑰內容。
cat id_rsa.pub
4.新增公鑰到GitHub賬戶
GitHub新增SSH Key: 登入GitHub賬號,進入Settings頁面,找到SSH and GPG keys部分,點選“New SSH key”,貼上剛剛複製的公鑰內容,併爲該金鑰對起一個標題。
5.驗證SSH設定是否成功
在終端或Git Bash
中輸入命令
ssh -T git@github.com
如果看到類似於下圖的“Hi 使用者名稱! You've successfully authenticated, but GitHub does not provide shell access.”的提示資訊,則說明SSH金鑰配置成功。
設定成功後,即可不需要賬號密碼clone和push程式碼。再之後clone倉庫的時候改成使用ssh的url,而不是https就可以了!
SSH工作原理
非對稱加密保證安全: SSH登入安全性由非對稱加密保證,產生金鑰時,一次產生兩個金鑰,一個公鑰,一個私鑰。 公鑰放到遠端主機,私鑰儲存在本地。 當本地主機需要登入遠端主機時,透過一系列加密解密過程完成身份驗證。
針對每臺主機的配置:SSH key的配置是針對每臺主機的,如果換了一臺新主機想要實現無密登入,就需要重新配置。