很多朋友在用github管理項目的時候涝焙,都是直接使用https url克隆到本地补胚,當(dāng)然也有有些人使用 SSH url 克隆到本地。然而窜锯,為什么絕大多數(shù)人會使用https url克隆呢艘刚?
這是因為管宵,使用https url克隆對初學(xué)者來說會比較方便,復(fù)制https url 然后到 Git Bash 里面直接用clone命令克隆到本地就好了攀甚。而使用 SSH url 克隆卻需要在克隆之前先配置和添加好 SSH key 箩朴。
因此,如果你想要使用 SSH url 克隆的話秋度,你必須是這個項目的擁有者炸庞。否則你是無法添加 SSH key 的。
Https 和 SSH 的區(qū)別:
1静陈、前者可以隨意克隆github上的項目燕雁,而不管是誰的;而后者則是你必須是你要克隆的項目的擁有者或管理員鲸拥,且需要先添加 SSH key ,否則無法克隆僧免。
2刑赶、https url 在push的時候是需要驗證用戶名和密碼的;而 SSH 在push的時候懂衩,是不需要輸入用戶名的撞叨,如果配置SSH key的時候設(shè)置了密碼,則需要輸入密碼的浊洞,否則直接是不需要輸入密碼的牵敷。
在 github 上添加 SSH key 的步驟:
1、首先需要檢查你電腦是否已經(jīng)有 SSH key
運行 git Bash 客戶端法希,輸入如下代碼:
$ cd ~/.ssh
$ ls
這兩個命令就是檢查是否已經(jīng)存在 id_rsa.pub 或 id_dsa.pub 文件枷餐,如果文件已經(jīng)存在,那么你可以跳過步驟2苫亦,直接進入步驟3毛肋。
2、創(chuàng)建一個 SSH key
$ ssh-keygen -t rsa -C "your_email@example.com"
代碼參數(shù)含義:
- -t 指定密鑰類型屋剑,默認是 rsa 润匙,可以省略。
- -C 設(shè)置注釋文字唉匾,比如郵箱孕讳。
- -f 指定密鑰文件存儲文件名。
以上代碼省略了 -f 參數(shù),因此厂财,運行上面那條命令后會讓你輸入一個文件名芋簿,用于保存剛才生成的 SSH key 代碼,如:
Enter file in which to save the key (/c/Users/one/.ssh/id_rsa): [Press enter]
當(dāng)然蟀苛,你也可以不輸入文件名益咬,使用默認文件名(推薦),那么就會生成 id_rsa 和 id_rsa.pub 兩個秘鑰文件帜平。
接著又會提示你輸入兩次密碼(該密碼是你push文件的時候要輸入的密碼幽告,而不是github管理者的密碼),當(dāng)然裆甩,你也可以不輸入密碼冗锁,直接按回車。那么push的時候就不需要輸入密碼嗤栓,直接提交到github上了冻河,如:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
接下來,就會顯示如下代碼提示茉帅,如:
Your identification has been saved in /c/Users/one/.ssh/id_rsa.
Your public key has been saved in /c/Users/one/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Kv9LewfTdzIu3q2I1cKcXGHW31E5wmz2DjunMBAtww8 602392033@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| . . o o|
| E . * +.|
| * o *.o|
| . . + o+|
| S .. = o|
| . o*.*+o.|
| . . . oXo=+ |
| o . ..oo=.. |
| ..+o.oo.o..|
+----[SHA256]-----+
當(dāng)你看到上面這段代碼的收叨叙,那就說明,你的 SSH key 已經(jīng)創(chuàng)建成功堪澎,你只需要添加到github的SSH key上就可以了擂错。
3、添加你的 SSH key 到 github上面去
a樱蛤、首先你需要拷貝 id_rsa.pub 文件的內(nèi)容钮呀,你可以用編輯器打開文件復(fù)制,也可以用git命令復(fù)制該文件的內(nèi)容昨凡,如:
$ clip < ~/.ssh/id_rsa.pub
b爽醋、登錄你的github賬號,從又上角的設(shè)置( Account Settings )進入便脊,然后點擊菜單欄的 SSH key 進入頁面添加 SSH key蚂四。
c、點擊 Add SSH key 按鈕添加一個 SSH key 就轧。把你復(fù)制的 SSH key 代碼粘貼到 key 所對應(yīng)的輸入框中证杭,記得 SSH key 代碼的前后不要留有空格或者回車。當(dāng)然妒御,上面的 Title 所對應(yīng)的輸入框你也可以輸入一個該 SSH key 顯示在 github 上的一個別名解愤。默認的會使用你的郵件名稱。
4乎莉、測試一下該SSH key
在git Bash 中輸入以下代碼
$ ssh -T git@github.com
當(dāng)你輸入以上代碼時送讲,會有一段警告代碼奸笤,如:
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
這是正常的,你輸入 yes 回車既可哼鬓。如果你創(chuàng)建 SSH key 的時候設(shè)置了密碼监右,接下來就會提示你輸入密碼,如:
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/one/.ssh/id_rsa':
當(dāng)然如果你密碼輸錯了异希,會再要求你輸入健盒,知道對了為止。
注意:輸入密碼時如果輸錯一個字就會不正確称簿,使用刪除鍵是無法更正的扣癣。
密碼正確后你會看到下面這段話,如:
Hi AFinalStone! You've successfully authenticated, but GitHub does not provide shell access.
如果用戶名是正確的,你已經(jīng)成功設(shè)置SSH密鑰憨降。如果你看到 “access denied” 父虑,者表示拒絕訪問,那么你就需要使用 https 去訪問授药,而不是 SSH 士嚎。