1. 程式人生 > >(轉)github設置添加SSH

(轉)github設置添加SSH

url data 剛才 一個 ott ucc content 疑問 bottom

很多朋友在用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

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]

當然,你也可以不輸入密碼,直接按回車。那麽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]

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 上的一個別名。默認的會使用你的郵件名稱。

在git Bash 中輸入以下代碼

$ ssh -T [email protected]

The authenticity of host github.com (207.97.227.239)‘ cant 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)?

Enter passphrase for key /c/Users/Administrator/.ssh/id_rsa‘:

註意:輸入密碼時如果輸錯一個字就會不正確,使用刪除鍵是無法更正的。

Hi username! Youve successfully authenticated, but GitHub does not
# provide shell access.

access denied” ,者表示拒絕訪問,那麽你就需要使用 https 去訪問,而不是 SSH 。

如果你有什麽疑問或指正,請留言。

產考文檔:https://help.github.com/articles/generating-ssh-keys

(轉)github設置添加SSH