Try   HackMD

Github SHH key 建立以及加入

About SSH key passphrases

你可以透過SSH(Secure Shell Protocol)存取及讀寫在GitHub上的repositories,當你透過SSH連接時,在本地端會使用你的私鑰來做驗證。

當你產生一組SSH key時,你可以加上一組密碼短語(passphrase)以更加強此組密碼,無論你何時使用此組密語你都必須要帶上這組密碼短語,如果你有一組密碼短語,但你又不想每次使用時都輸入,你可以將你的密碼短語加到SHH agent,SSH agent協助管理你的SSH keys並且可以記住你的密碼短語。

如果你還未擁有一組SSH key,為了驗證你需要建立一組新的SSH key,但如果你不確定你是否有一組了,你可以確認看看,看這篇 Checking for existing SSH keys做參考。

如果你想使用硬體金鑰來驗證登入Github,你必須幫你的硬體建立一組新的SSH key,且當你想用這方式登入時,你必須將硬體金鑰與電腦連接以用來驗證。

Generating a new SSH key

你可以在本地端建立一組新的SSH key,在建立之後要把此組key加入到GitHub內以用來啟動使用SSH方式來登入驗證Git。

以下步驟:

  1. 打開terminal
  2. 將下面這段字搭配你的GitHub email貼上並輸入
    ssh-keygen -t ed25519 -C "your_email@example.com"
  3. 接下來會跳出以下文字
    > Generating public/private algorithm key pair.
    > Enter a file in which to save the key (/Users/you/.ssh/id_algorithm): 按下enter進入下一步
    > /Users/xxx/.ssh/id_ed25519 already exists.
    > Overwrite (y/n)? 這裡出現這個是因為你之前可能有建立過了,他問你要不要覆寫
    > Enter passphrase (empty for no passphrase): [Type a passphrase] 可以選擇要不要加上密碼短語來加強,如果否,就enter下一步
    > Enter same passphrase again: [Type passphrase again] 如果有使用密碼短語,就再次輸入確認。

Adding your SSH key to the ssh-agent

在將SHH key加入到ssh-agent以便管理你的keys前,你應該先確認是否有已存在的SSH key或是建立一個新的。以下將會使用macOS預設的ssh-add 指令來將SSH key加入到agent裡,而非是其他外部從macport, homebrew安裝的程式。

  1. 將ssh-agent運行在背景
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    根據你的裝置環境,你可能需要使用不同的指令,例如,你可能需要先使用sudo -s -H來取得系統存取,或是你可能需要使用exec ssh-agent bash 或是 exec ssh-agent zsh來運行ssh-agent。

  2. 如果你的macOS版本是在10.12.2後,你需要修改~/.ssh/config檔案以自動將載入ssh-key載入到ssh-agent並且將其儲存在你的鑰匙圈內。

    • 首先,先確認你的預設目錄下是否有~/.ssh/config這個檔案
      $ open ~/.ssh/config
      > The file /Users/you/.ssh/config does not exist.
    • 如果不存在就建立這個檔案
      $ touch ~/.ssh/config
    • 打開這檔案並將以下文字加入檔案中,如果你的SSH key檔案為不同名稱,請再自行修改為符合的字樣。
      ​​Host *
      ​​  AddKeysToAgent yes
      ​​  UseKeychain yes
      ​​  IdentityFile ~/.ssh/id_ed25519 -> 請確認自己的file name
      
      • 如果你選擇不將密碼短語加到你的key中,你就要把UseJeyChain這行刪掉。
      • 如果你遇到Bad configuration option: useKeychain錯誤,請在將以下加到檔案裡面:
        ​​​Host *
        ​​​  IgnoreUnknown UseKeychain
        
  3. 將你的SSH private key加到ssh-agent並將你的passpharse存到鑰匙圈內。

ssh-add -K ~/.ssh/id_ed25519 --> id_ed25519這部分如有不同,請依照自己的名稱做更換。
  1. 接下來就可以依照這篇將SSH key加到你的GitHub帳戶囉。(此部分相對簡易,有時間再補中文筆記)

tags: github
louis