https 和 SSH 的區別: 1、前者可以隨意克隆github上的項目,而不管是誰的;而後者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key ,否則無法克隆。 2、https url 在push的時候是需要驗證用戶名和密碼的;而 SSH 在push的時候,是不需要輸入用戶 ...
https 和 SSH 的區別:
1、前者可以隨意克隆github上的項目,而不管是誰的;而後者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key ,否則無法克隆。
2、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 "[email protected]"
代碼參數含義:
-t 指定密鑰類型,預設是 rsa ,可以省略。
-C 設置註釋文字,比如郵箱。
-f 指定密鑰文件存儲文件名。
以上代碼省略了 -f 參數,因此,運行上面那條命令後會讓你輸入一個文件名,用於保存剛纔生成的 SSH key 代碼,如:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/Alan/.ssh/id_rsa): Enter passphrase (empty for no passphrase): #該密碼是你push文件的時候要輸入的密碼,而不是github管理者的密碼 Enter same passphrase again: Your identification has been saved in /Users/Alan/.ssh/id_rsa. Your public key has been saved in /Users/Alan/.ssh/id_rsa.pub. The key fingerprint is: SHA256:WTKnBojIjX8do8O0RLxFYVT854mtfMFVhfTJ6BTsDx0 “[email protected]” The key's randomart image is: +---[RSA 2048]----+ | ..o=+. .o..o| |..o..o.. . .=Eo| |.o...o+oo + .o.o+| | . +.+.oB .o+ o | | . * .S *.= | | . .. . * . | | . . . | | o . | | . | +----[SHA256]-----+
接著又會提示你輸入兩次密碼(該密碼是你push文件的時候要輸入的密碼,而不是github管理者的密碼),
當然,你也可以不輸入密碼,直接按回車。那麼push的時候就不需要輸入密碼,直接提交到github上了
3、添加你的 SSH key 到 github上面去
4、測試一下該SSH key
$ ssh -T [email protected]
當你輸入以上代碼時,會有一段警告代碼,如:
he 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” ,者表示拒絕訪問