轉載
原文閱讀:https://www.cnblogs.com/chuyanfenfei/p/8035067.html
很多朋友在用github管理專案的時候,都是直接使用https url克隆到本地,當然也有有些人使用 SSH url 克隆到本地,然而,為什么絕大多數人會使用https url克隆呢?
這是因為,使用https url克隆對初學者來說會比較方便,復制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了,而使用 SSH url 克隆卻需要在克隆之前先配置和添加好 SSH key ,
因此,如果你想要使用 SSH url 克隆的話,你必須是這個專案的擁有者,否則你是無法添加 SSH key 的,
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 (/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 [email protected]
當你看到上面這段代碼的收,那就說明,你的 SSH key 已經創建成功,你只需要添加到github的SSH key上就可以了,
3、添加你的 SSH key 到 github上面去
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

4、測驗一下該SSH key
在git Bash 中輸入以下代碼
$ ssh -T [email protected]
當你輸入以上代碼時,會有一段警告代碼,如:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/103898.html
標籤:其他
下一篇:docker 常用操作
