通過在 github 上添加 SSH key,實現免密登錄,不需要每次push 和 clone 時都輸入密碼。
Https和 SSH 的區別:
- 前者可以隨意克隆github上的項目,而不管是誰的;而后者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key ,否則無法克隆。
- https url 在push的時候是需要驗證用戶名和密碼的;而 SSH 在push的時候,是不需要輸入用戶名的,如果配置SSH key的時候設置了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。
在 github 上添加 SSH key :
1、檢查是否已經有 SSH key
運行 git Bash 客戶端,輸入如下代碼:
cd ~/.ssh
ls
這兩個命令就是檢查是否已經存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已經存在,那么你可以跳過步驟2,直接進入步驟3。
2、創建新的 SSH key
ssh-keygen -t rsa -C "your_email@example.com"
代碼參數含義:
-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的時候就不需要輸入密碼,直接提交到github上了,如:
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 your_email@example.com
當你看到上面這段代碼的時候,那就說明,你的 SSH key 已經創建成功,你只需要添加到github的SSH key上就可以了。
創建成功
3、添加 SSH key 到 github
-
首先你需要拷貝 id_rsa.pub 文件的內容,你可以用編輯器打開文件復制。
-
登錄你的github賬號,從右上角的設置( Settings )進入,然后點擊菜單欄的 SSH and GPG keys 進入頁面。
-
點擊 Add SSH key 按鈕添加一個 SSH key 。把你復制的 SSH key 代碼粘貼到 key 所對應的輸入框中,記得 SSH key 代碼的前后不要留有空格或者回車。上面的 Title 所對應的輸入框你也可以輸入一個該 SSH key 顯示在 github 上的一個別名,也可以不輸入,默認會使用你的郵件名稱。
4、驗證是否配置成功
ssh -T git@github.com
成功的話如下所示
之后都推薦走ssh拉取代碼,再github 上選擇clone地址時,選擇ssh地址,入下圖。這樣git push
與 git clone
都可以直接走代理了,並且不需要輸入密碼。
我的個人博客 https://tjfish.top/