Photo by Sander Lenaerts on Unsplash
中秋賞月去來個回憶篇🌕
哎呀,工作用的 GitHub 需要 SSH key
STEP1. 確認目前的電腦裡是否有id_rsa.pub
$ cd ~/.ssh
$ ls
可是瑞凡….我已經有 id_rsa.pub,這是給我自己 GitHub 用的
下面套路不能用了,會蓋到原本 id_rsa.pub
####建立指令
$ ssh-keygen -t rsa -C "yourEmail@example.com"
複製
上面參數的含義:
– t 指定金鑰型別,預設是 rsa ,可以省略。
創另一組 SSH Key
$ ssh-keygen -t rsa -b 4096 -C "myJob@spacex.com" -f ~/.ssh/id_rsa_github_spacex
複製公鑰
$ cat ~/.ssh/id_rsa_github_spacex.pub
GitHub → Settings → SSH and GPG keys → touch “New SSH key” button → 貼上
$ git clone https://github.com/r-spacex/spacexstats-react.git
我有把長長一條 SSH key 放到 GitHub 裡,怎麼沒反應?
沒權限 git clone (@~@)?
後來發現是特殊情況。
我有兩組 GitHub 帳號,一組是我私人用的,一組是工作用的。
cd ~/.ssh
vi config
依照以下格式設定
Host | 連線至遠端的別稱(可以隨便填) |
---|---|
HostName | 遠端的Domain或IP |
Port | 遠端的SSH連接埠(為預設的話可以不填) |
User | 使用者名稱 |
PreferredAuthentications | 偏好使用的驗證(這邊的值都為publickey) |
IdentityFile | 私鑰的位置(可為相對或絕對位置,但建議使用絕對位置) |
以下是範例完整的config內容
Host helloworldsmart
HostName github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa.pub
Host spacex
HostName github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa_github_spacex.pub
有發現有什麼問題嗎?
私鑰跟公鑰搞混了!!!
怎麼用公鑰在跟 github 公鑰做交換 (゜▽゜;)
修正後如下
Host helloworldsmart
HostName github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
Host spacex
HostName github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa_github_spacex
將Key加入ssh-agent控管
請問廣大 iT 鐵人們
我目前每次要切換帳號 git push 前, 都要 ssh-add 執行要用的私鑰 (@~@)?
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_github_spacex
$ git clone https://github.com/r-spacex/spacexstats-react.git
把 HostName 改掉
$ git clone https://spacex/r-spacex/spacexstats-react.git
Refer:
[Git] 多個SSH Key與帳號的設定(Mac) | 複製與貼上的Coding態度 - 點部落