iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
Mobile Development

SwiftUI 男孩系列 第 14

Day 14: 我有把 SSH key 放到 GitHub 裡,怎麼沒反應?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230929/20130138qhh953duG8.jpg

Photo by Sander Lenaerts on Unsplash

中秋賞月去來個回憶篇🌕

哎呀,工作用的 GitHub 需要 SSH key

STEP1. 確認目前的電腦裡是否有id_rsa.pub

$ cd ~/.ssh
$ ls

可是瑞凡….我已經有 id_rsa.pub,這是給我自己 GitHub 用的

下面套路不能用了,會蓋到原本 id_rsa.pub

STEP2. 建SSH key

####建立指令

$ ssh-keygen -t rsa -C "yourEmail@example.com"

複製

上面參數的含義:

– t 指定金鑰型別,預設是 rsa ,可以省略。

  • C 設定註釋文字,如mail,這邊的mail需要是註冊Gitlab的那個mail。
  • f 指定金鑰檔案儲存檔名。

創另一組 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:

在 GitLab 上新增 SSH key

[Git] 多個SSH Key與帳號的設定(Mac) | 複製與貼上的Coding態度 - 點部落


上一篇
Day 13: Swift package
下一篇
Day 15: SwiftUI TabView (上)
系列文
SwiftUI 男孩30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言