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文件夾。
如果電腦上有,就會顯示
如果電腦上沒有,那就顯示
No such file or directory


2.創建SSH Key
如果你電腦上有了,你就可以直接跳過這一步
在Git Bash中輸入
ssh-keygen -t rsa -C "549387177@qq.com"
然后就會顯示這兩行:
Generating public/private rsa key pair.
Enter file in which to save the key (/C/Users/huang'jin'feng/.ssh/id_rsa):
這是讓你輸入一個文件名,用於保存剛才生成的 SSH key 代碼。為了避免麻煩,不用輸入,直接回車,那么就會默認生成id_rsa和id_rsa.pub兩個秘鑰文件。
這時候已經創建好.ssh這個文件夾了,會提示:
Created directory '/C/Users/huang'jin'feng/.ssh/id_rsa'.
緊接着又會問你:
Enter passphrase (empty for no passphrase):
就是讓你輸入密碼,如果你設置了密碼,那在你使用ssh傳輸文件的時候,你就要輸入這個密碼。為了避免麻煩,建議不用設置,直接回車。
Enter same passphrase again:
這就是讓你再輸入一次密碼,就跟我們注冊賬號時候設置密碼需要設置兩次一樣。上一步沒設置密碼,這里直接回車就可以了。到這里你的秘鑰就設置好了,你會收到這段代碼提示:
Your identification has been saved in /C/Users/huang'jin'feng/.ssh/id_rsa
Your public key has been saved in /C/Users/huang'jin'feng/.ssh/id_rsa.pub
還會向你展示你的秘鑰長啥樣

完成之后你可以用命令.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 git@github.com
注意是git@github.com,不是你的郵箱。
然后會提示你:
The authenticity of host 'github.com (20.205.243.166)' 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 (20.205.243.166)' (RSA) to the list of known hosts.
警告完了,如果你能看到如下提示,那你已經成功設置SSH密鑰。
Hi "hhfeng616"! You’ve successfully authenticated, but GitHub does not provide shell access.
如果你看到 access denied,者表示拒絕訪問,那么你就需要使用 https 去訪問。