How to add your Github SSH key(for win)

2021 使用,2022 更新,關於 SSH key 配置這件事

前言

剛好先前是有電腦後,才把電腦配置成程式所需的環境,這次依照自己的需求配置了新電腦(win 系統),所記錄處理這個重要的 SSH 東東。

確認需求

確認自己目前會需要用到的服務是甚麼?(e.g. github、heroku …)
因為已經知道這次主要會以 github 為主軸,所以先去翻了官方 github 的 ssh 文件,但又有初學者對於英翻中後的問題,我會把官方文件搭配 google 找的教學文,確認自己認知是否正確。

建立 SSH key

預設我的資料夾都會安裝在 C 槽,並開啟 Git Bash 再依序完成下述指令。

  1. mkdir ~/.ssh 新增 ssh 的資料夾
  2. chmod 700 ~/.ssh 把 ssh 資料夾調整正確的權限
  3. ssh-keygen -t ed25519 -C "your_email@example.com" 依照 github 指令將 mail 抽換成自己的,並且如果比較高檔的電腦可改用 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

接著會出現一些問答:

1
2
3
> Enter a file in which to save the key (/c/Users/you/.ssh/id_algorithm):[Press enter]
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

可以都直接按 Enter 或是想要輸入密碼也可以。而我則是因為還會需要配置其他的 ssh 所以會再第一個問題 Enter a file in which to save the key 輸入自己的前綴字,讓自己分辨是哪個 ssh,e.g. github_key

第二、三問題則是問你需不需要設密碼,並且再次確認你的密碼是啥。

  1. Git Bash 會顯示一些訊息 e.g.
1
2
Your identification has been saved ...
Your public key has been saved ...

因為這裡忘記截圖,但最快的方式是確認自己原本的 .ssh 資料夾是否有剛剛新增的 key。

  1. 設定金鑰代理,這個步驟是為了在上面新增 ssh 並有設定密碼的人,但為了確保自己日後方便性,直接先完成了,結果這次就卡在這步驟 XD。
1
2
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/github_key

ps. 點複製 btn 時,記得把 $ 刪除

本次發生的問題

因這次新增金鑰代理時,因為第一次我有輸入錯誤,後來再次獲得了 像是下方其中一則的錯誤訊息,後來才發現是因為自己執行太多次,開啟工作管理員並找到 ssh agent 終止工作後,就可以順利執行了。

1
2
3
Permission denied (publickey)
No suitable response from remote
repository access denied
  1. 接著就可以先到 github 新增 key,相關步驟。

  2. 配置自己的 ssh config ,在原本的資料夾直接新增一個 config 用你自己常用的 IDE 開啟,以 github 配置舉例:

1
2
3
4
Host github.com
HostName github.com
User yourname
IdentityFile ~/.ssh/github_key
  1. 存檔後進行測試 ssh -T git@github.com ,如果順利的話就會看到 successfully 的相關字樣。

參考資料:

  1. Generating a new SSH key and adding it to the ssh-agent
  2. 【Git】使用 SSH 金鑰與 GitHub 連線
  3. SSH-key詳解及其在Git中的使用