1. 程式人生 > >github設定新增SSH

github設定新增SSH

很多朋友在用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賬號,從又上角的設定(Account Settings )進入,然後點選選單欄的 SSH key 進入頁面新增 SSH key。

c、點選 Add SSH key 按鈕新增一個 SSH key 。把你複製的 SSH key 程式碼貼上到 key 所對應的輸入框中,記得 SSH key 程式碼的前後不要留有空格或者回車。當然,上面的 Title 所對應的輸入框你也可以輸入一個該 SSH key 顯示在 github 上的一個別名。預設的會使用你的郵件名稱。

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