1. 程式人生 > 其它 >GitHub教程 SSH keys配置

GitHub教程 SSH keys配置

SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。

在管理Git專案上,有兩種克隆到本地的方法。

直接使用https url克隆到本地

使用SSH url克隆到本地

這兩種方式的主要區別在於:

使用https url對初學者來說會比較方便,複製https url然後到git Bash裡面直接用clone命令克隆到本地就好了,但是每次fetch和push程式碼都需要輸入賬號和密碼,這也是https方式的麻煩之處。

使用SSH url需要在只用之前先配置和新增好SSH key。每次fetch和push程式碼都不需要輸入賬號和密碼,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設定。

1.檢查你電腦上是否有SSH Key

~/.ssh 或者用~/.ssh ls

上邊這行命令的作用是看一哈你的電腦上有沒有.ssh資料夾。

如果電腦上有,就會顯示bash: /c/Users/…/.ssh: Is a directory

如果電腦上沒有,那就顯示bash: /c/Users/…/.ssh: No such file or directory

2.建立SSH Key
如果你電腦上有了,你就可以直接跳過這一步

在Git Bash中輸入

$ ssh-keygen -t rsa -C "你的郵箱"

然後就會顯示這兩行:

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/16627/.ssh/id_rsa):

這是讓你輸入一個檔名,用於儲存剛才生成的 SSH key 程式碼。為了避免麻煩,不用輸入,直接回車,那麼就會預設生成id_rsa和id_rsa.pub兩個祕鑰檔案。

這時候已經建立好.ssh這個檔案夾了,會提示:

Created directory ‘/c/Users/16627/.ssh’.

緊接著又會問你:

Enter passphrase (empty for no passphrase):

就是讓你輸入密碼,如果你設定了密碼,那在你使用ssh傳輸檔案的時候,你就要輸入這個密碼。為了避免麻煩,建議不用設定,直接回車。

Enter same passphrase again:

這就是讓你再輸入一次密碼,就跟我們註冊賬號時候設定密碼需要設定兩次一樣。上一步沒設定密碼,這裡直接回車就可以了。到這裡你的祕鑰就設定好了,你會收到這段程式碼提示:

Your identification has been saved in /c/Users/…/.ssh/id_rsa

Your public key has been saved in /c/Users/…/.ssh/id_rsa.pub

還會向你展示你的祕鑰長啥樣

當你看到上面這段程式碼,那就說明你的 SSH key 已經建立成功,你可以再使用~/.ssh看一下,現在檔案是真的存在了。


3.新增SSH Key到GitHub

首先開啟Github網頁

(黃色框框是我已經建立的SSH key。)

點選右上角新建一個SSH Key。

title隨便給他起個名字就好。然後是key,這時候你要開啟你剛才在電腦上的SSH key。

還記得這一步嗎:

按照紅框框裡的路徑,找到.ssh資料夾。用記事本開啟id_rsa.pub檔案,全選其中的內容貼上到網頁的Key中。


然後你就會受到建立成功的郵件了。


4.測試一下該SSH key

在git Bash 中輸入以下程式碼

$ ssh -T [email protected]

注意是[email protected],不是你的郵箱。

然後會提示你:

The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.

RSA key fingerprint is SHA256:nThbg6kXUp…

Are you sure you want to continue connecting (yes/no/[fingerprint])?

輸入yes,回車

接下來就會提示你輸入密碼,如果上邊設定ssh的時候,你沒設定密碼會提示你:

Warning: Permanently added ‘github.com,192.30.255.112’ (RSA) to the list of known hosts.

警告完了,如果你能看到如下提示,那你已經成功設定SSH金鑰。

Hi “使用者名稱”! You’ve successfully authenticated, but GitHub does not provide shell access.

如果你看到 access denied,者表示拒絕訪問,那麼你就需要使用 https 去訪問。