郭桓桓
文章9
標籤8
分類0
設定 Github SSH

設定 Github SSH

前言

在 GitHub 中有兩種存取資料的連線方式,一種是 https,另一種是 ssh。

兩者的差別在於 https 在每次 git push 前都要輸入密碼,
而 ssh 相對的就不用輸入密碼即可立即上傳,若不想每次都輸入密碼可以參考 ssh 連線方式。

設定 SSH 金鑰

打開 Terminal,輸入

1
ssh-keygen -t rsa -b 4096 -C "你的 Email"

輸入後就會出現下面這幾行:

Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [按Enter]
Enter passphrase (empty for no passphrase): [按Enter]
Enter same passphrase again: [按Enter]

到這邊就成功了!

將金鑰加到 ssh-agent

加入到 ssh-agent 的用意是以後使用這個金鑰就不需要再輸入剛剛上一步設定的密碼。
如果跳過這個步驟,之後要使用金鑰時就需要輸入自訂的密碼。
開啟 ssh-agent

1
eval "$(ssh-agent -s)"

將私鑰加入到 ssh-agent

1
ssh-add ~/.ssh/id_rsa

輸入上面那行之後,會需要再次輸入密碼,輸入完畢驗證後就成功的加入了!

上傳公鑰

在 .ssh/ 資料夾下會分別有 id_rsa、id_rsa.pub 這兩個檔案,
也就分別代表私鑰及公鑰,這一個步驟就是將 id_rsa.pub 也就是公鑰上傳到 Github 上。

1
cat ~/.ssh/id_rsa.pub

會出現一大串英文跟數字夾雜的公鑰,大概像:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7Lt1ioFrKn0LNWYwnBZyz2zCDEXNW2qWe6S7hTIUpft9pW1awAdYzVwKc8AjWGJKIDx99eVxubns2NMsmymfvaoUVwl9Zwil+pov82Dp4nQ+Qkwf47mezwYn592nZjQCaeHvQhIQutxrc50ptC1BEQQDLSp0GHAfvQ0GRq2kWCNwByMKuK1UmgGkYT+iahzIWxLzhrNilQSAugqGAhsfLXa+xxtj39d7qABUPWqfCU+nXzTy0srXaTsekj7s3owbrnMsod95LaiFxc9vtpoUau1J6thSO0L9PcREjZWQqUaU+tHqeUJQ7pDLOHEXrrCadhNT/dyYEIYgCE5Y1cn4SUd7p0++xHMX16hSqhNHJQxJcZVwkv9GHAfvQ0GRq2kWCNwByoAEC2gqmKD2ynuxzKk595PRNQ2oPsj8rc5U+t74JLyu+6STfm8dq5BLmOzlorUNdRFMjZ3GtYferCADp0/BV/C2ljXWSP8DhFVCw-x5iv8Wg5BiQSmOk/bVR0GybF8sExvfxgTAYJ9SjJG6QOGHAfvRqrL3XuqxToC/80tKfq/Ay5gfEzJTiQHcwhY++PG3TBj/ohzWhS5sfjAGmGebhNfiH88XLCrFaLoNQoid1vMauZ7wkXBdwn9VsCzjzwfof2gZNdyjqakZsdPQTokRnwMAaM6\ZPf3UZTqw== yourusrname@mailprovider.last

這樣。
然後再把整串複製下來。

到 Github 的 Settings > SSH and GPG keys > New SSH Key,
把剛剛複製的公鑰貼上去,上面的標題可以空白,
按下確定後再輸入一次 Github 密碼就完成了。
image

Github 官方其實是推薦使用 HTTPS ,但也還是有提供 SSH 的連線方式,而這兩者差異在於:

  • HTTPS 在 clone 的時候需要輸入帳號密碼。
  • SSH 則是在電腦中設定好金鑰,不需要額外的帳號密碼。

兩者執行出來的結果會是一樣的,設定好了 SSH,之後 clone 就可以不需要輸入帳號密碼囉~

參考資料

https://ithelp.ithome.com.tw/articles/10205988

https://zhuanlan.zhihu.com/p/116902218

https://andy6804tw.github.io/2018/03/22/github-ssh/#3-%E4%B8%8A%E5%82%B3%E5%85%AC%E9%91%B0%E8%87%B3-github

https://blog.csdn.net/qq_37805723/article/details/84103157

https://kknews.cc/code/3qp43ny.html

本文作者:郭桓桓
本文鏈接:https://blog.nekohuan.cyou/2021/06/23/set-github-ssh/
本文係採用創用 CC 姓名標示-非商業性-禁止改作 3.0 台灣 授權條款授權
×