你可以透過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,且當你想用這方式登入時,你必須將硬體金鑰與電腦連接以用來驗證。
你可以在本地端建立一組新的SSH key,在建立之後要把此組key加入到GitHub內以用來啟動使用SSH方式來登入驗證Git。
以下步驟:
ssh-keygen -t ed25519 -C "your_email@example.com"
> 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] 如果有使用密碼短語,就再次輸入確認。
在將SHH key加入到ssh-agent以便管理你的keys前,你應該先確認是否有已存在的SSH key或是建立一個新的。以下將會使用macOS預設的ssh-add
指令來將SSH key加入到agent裡,而非是其他外部從macport, homebrew安裝的程式。
將ssh-agent運行在背景
$ eval "$(ssh-agent -s)"
> Agent pid 59566
根據你的裝置環境,你可能需要使用不同的指令,例如,你可能需要先使用sudo -s -H
來取得系統存取,或是你可能需要使用exec ssh-agent bash
或是 exec ssh-agent zsh
來運行ssh-agent。
如果你的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
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519 -> 請確認自己的file name
UseJeyChain
這行刪掉。Bad configuration option: useKeychain
錯誤,請在將以下加到檔案裡面:
Host *
IgnoreUnknown UseKeychain
將你的SSH private key加到ssh-agent並將你的passpharse存到鑰匙圈內。
ssh-add -K ~/.ssh/id_ed25519 --> id_ed25519這部分如有不同,請依照自己的名稱做更換。
github