轉載html
原文閱讀:https://www.cnblogs.com/chuyanfenfei/p/8035067.htmlgit
不少朋友在用github管理項目的時候,都是直接使用https url克隆到本地,固然也有有些人使用 SSH url 克隆到本地。然而,爲何絕大多數人會使用https url克隆呢?github
這是由於,使用https url克隆對初學者來講會比較方便,複製https url 而後到 git Bash 裏面直接用clone命令克隆到本地就行了。而使用 SSH url 克隆卻須要在克隆以前先配置和添加好 SSH key 。shell
所以,若是你想要使用 SSH url 克隆的話,你必須是這個項目的擁有者。不然你是沒法添加 SSH key 的。ssh
一、前者能夠隨意克隆github上的項目,而無論是誰的;然後者則是你必須是你要克隆的項目的擁有者或管理員,且須要先添加 SSH key ,不然沒法克隆。編輯器
二、https url 在push的時候是須要驗證用戶名和密碼的;而 SSH 在push的時候,是不須要輸入用戶名的,若是配置SSH key的時候設置了密碼,則須要輸入密碼的,不然直接是不須要輸入密碼的。ide
運行 git Bash 客戶端,輸入以下代碼:測試
$ cd ~/.ssh $ ls
這兩個命令就是檢查是否已經存在 id_rsa.pub 或 id_dsa.pub 文件,若是文件已經存在,那麼你能夠跳過步驟2,直接進入步驟3。url
$ ssh-keygen -t rsa -C "your_email@example.com"
代碼參數含義:code
-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上就能夠了。
a、首先你須要拷貝 id_rsa.pub 文件的內容,你能夠用編輯器打開文件複製,也能夠用git命令複製該文件的內容,如:
$ clip < ~/.ssh/id_rsa.pub
b、登陸 github 右上角點擊你的頭像—>Settings
—>SSH and GPG keys
—>new SSH key
—>將複製的公鑰(id_rsa.pub)代碼添加到Key中,並鍵入Title
—> 點擊add 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 。
若是你有什麼疑問或指正,請留言。
參考文檔:https://help.github.com/articles/generating-ssh-keys