1. 程式人生 > 其它 >Git SSH key 的使用

Git SSH key 的使用

有時在我們第一次從某個git倉庫拉取、推送程式碼或隔很長時間沒有進行此操作的時候,git就會報 `Permission denied (publickey)`的錯誤,這是因為本地的SSH key和遠端賬戶中的金鑰不一致導致的。所以我們需要在本地生成一個SSH key檔案,然後在git賬戶中進行繫結。

摘要:

有時在我們第一次從某個git倉庫拉取、推送程式碼或隔很長時間沒有進行此操作的時候,git就會報 Permission denied (publickey)的錯誤,這是因為本地的SSH key和遠端賬戶中的金鑰不一致導致的。所以我們需要在本地生成一個SSH key檔案,然後在git賬戶中進行繫結。

生成步驟

1. 檢查金鑰檔案

$ cd ~/.ssh
$ ls

以上指令將查詢C:\Users\使用者名稱.ssh資料夾中的檔案是否存在,如果輸出以下內容,則說明你曾經已經生成過SSH金鑰檔案了,id_dsa.pub是你的公鑰,id_dsa是私鑰。

authorized_keys2  
id_dsa       
known_hosts
config
id_dsa.pub

如果已經繫結到git賬戶中或者未查詢到以上公私鑰檔案,但依舊報Permission denied (publickey)錯誤,說明你需要從新生成一個SSH金鑰。

2. 生成金鑰檔案

貼上下面的文字,把後面替換成你自己的git賬戶郵箱。

# 生成新的金鑰
$ ssh-keygen -t rsa -C "[email protected]"

點選回車,命令列將出現以下內容,這是詢問你是否將金鑰儲存在預設位置,你可以直接回車確定。

# 檔案儲存位置
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\DELL/.ssh/id_rsa):

如果你之前生成過SSH檔案,將出現以下提示,這是詢問你是否要完全覆蓋舊的金鑰檔案,你可以輸入"Y"以確認。

# 是否覆蓋舊檔案
C:\Users\DELL/.ssh/id_rsa already exists.
Overwrite (y/n)?

然後將詢問你是否在每次通過ssh操作git時需要輸入密碼,你可以直接按兩次回車置空,則視為不需要。

# 是否要求密碼驗證
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

操作完畢後,新的SSH金鑰就生成了。

新增金鑰到git賬戶(以github為例)

複製金鑰文字

用記事本開啟你剛剛生成的SSH金鑰檔案id_rsa.pub(Windows預設目錄為"%HOMEPATH%\.ssh"),複製全部文字。

填入配置

點選右上角賬號頭像,選擇Settings按鈕,

進入設定頁面之後,點選側邊欄的SSH an GPG keys選項,

然後點選New SSH keyAdd SSH key新建或新增金鑰,

將剛才在本地複製的id_rsa.pub金鑰文字,貼上到文字框中。

然後點選Add SSH key按鈕即可完成。