git提交不用每次都輸入用戶名密碼

克隆項目二種方式:git

1. 使用https url克隆,   複製https url 而後到 git clone https-urlgithub

2.使用 SSH url 克隆卻須要在克隆以前先配置和添加好 SSH key, 你必須是這個項目的擁有者。不然你是沒法添加 SSH key 的。shell

 

https 和 SSH 的區別:

一、前者能夠隨意克隆github上的項目,而無論是誰的;然後者則是你必須是你要克隆的項目的擁有者或管理員,且須要先添加 SSH key ,不然沒法克隆。ssh

二、https url 在push的時候是須要驗證用戶名和密碼的;而 SSH 在push的時候,是不須要輸入用戶名的,若是配置SSH key的時候設置了密碼,則須要輸入密碼的,不然直接是不須要輸入密碼的。編輯器

 

 

 

在 github 上添加 SSH key 的步驟:

一、首先須要檢查你電腦是否已經有 SSH key 

運行 git Bash 客戶端,輸入以下代碼:ide

$ cd ~/.ssh
$ ls

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

 

二、建立一個 SSH key 

$ ssh-keygen -t rsa -C "your_email@example.com"

代碼參數含義:url

-t 指定密鑰類型,默認是 rsa ,能夠省略。
-C 設置註釋文字,好比郵箱。
-f 指定密鑰文件存儲文件名。spa

以上代碼省略了 -f 參數,所以,運行上面那條命令後會讓你輸入一個文件名,用於保存剛纔生成的 SSH key 代碼,如:code

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

 

三、添加你的 SSH key 到 github上面去

a、首先你須要拷貝 id_rsa.pub 文件的內容,你能夠用編輯器打開文件複製,也能夠用git命令複製該文件的內容,如:

$ clip < ~/.ssh/id_rsa.pub

b、登陸你的github帳號,從又上角的設置( Account Settings )進入,而後點擊菜單欄的 SSH key 進入頁面添加 SSH key。

c、點擊 Add SSH key 按鈕添加一個 SSH key 。把你複製的 SSH key 代碼粘貼到 key 所對應的輸入框中,記得 SSH key 代碼的先後不要留有空格或者回車。固然,上面的 Title 所對應的輸入框你也能夠輸入一個該 SSH key 顯示在 github 上的一個別名。默認的會使用你的郵件名稱。

 

四、測試一下該SSH key

在git Bash 中輸入如下代碼

$ ssh -T git@github.com

當你輸入以上代碼時,會有一段警告代碼,如:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

這是正常的,你輸入 yes 回車既可。若是你建立 SSH key 的時候設置了密碼,接下來就會提示你輸入密碼,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

固然若是你密碼輸錯了,會再要求你輸入,知道對了爲止。

注意:輸入密碼時若是輸錯一個字就會不正確,使用刪除鍵是沒法更正的。

密碼正確後你會看到下面這段話,如:

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

若是用戶名是正確的,你已經成功設置SSH密鑰。若是你看到 「access denied」 ,者表示拒絕訪問,那麼你就須要使用 https 去訪問,而不是 SSH 。

相關文章
相關標籤/搜索