多账户使用Github的场景,设置 SSH 多账号使用特定 key
遇到多账户使用Github的场景,常难以管理ssh文件
解决方案:
你可以通过配置 ~/.ssh/config 文件,生成多个SSH key 让 Git 识别不同 key 来对应不同 GitHub 账号。
✅ 正确的 key 类型有这些常见选项:
rsa
:老牌算法,兼容性最好
ed25519
:现代算法,安全且体积小(推荐)
ecdsa
:基于椭圆曲线算法,适用于部分系统
✨ 推荐使用这个命令生成新的 SSH key:
注意ed25519不是随便输入的字符,别搞错了
ssh-keygen -t ed25519 -C "will@xxx.com" -f ~/.ssh/id_will_new
然后添加到 SSH agent(可选):
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_will_new
查看并复制公钥内容:
cat ~/.ssh/id_will_new.pub
复制粘贴到 GitHub 或 GitLab 的 SSH Key 页面即可 🎉
🔧 Step-by-step 修改 SSH 配置
打开 SSH 配置文件(没有就新建):
nano ~/.ssh/config
添加以下内容(根据你自己的 SSH key 名称调整):
默认账号的配置(已有的)不用改
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_bqing
IdentitiesOnly yes
Test user 的账号配置(为 Test user设置专属 Host)
Host github-test-user
HostName github.com
User git
IdentityFile ~/.ssh/id_will_new
IdentitiesOnly yes
你可以根据你的私钥文件名调整 id_will_new,确保路径对。
🌀 修改 Git 项目用的远程地址
现在你需要告诉 Git 使用你刚配置的 tgithub-test-user 来访问这个项目:
git remote set-url origin git@github-test-user:Text/xxx.git
注意这里不是 github.com:,而是你在 config 里定义的 Host github-test-user
🔁 测试:
ssh -T git@github-test-user
应该看到的是:
Hi Test user! You've successfully authenticated, but GitHub does not provide shell access.
然后再尝试:
git push -u origin main
✅ 一劳永逸的做法
如果你多个项目用不同 GitHub 账号,这种 ssh config + 自定义 Host + 修改 remote url 是最佳实践 👍
如果你还不确定哪把 key 是谁的,我也可以帮你一键检测多个 key 属于哪个账号~
在 macOS 的 Terminal 里使用 nano 编辑器时,这些快捷键会帮你 快速高效地操作文本文件:
🧭 基础导航
快捷键 功能
Ctrl + A
移动到行首
Ctrl + E
移动到行尾
Ctrl + Y
上滚一页
Ctrl + V
下滚一页
Ctrl + _
然后输入行号 跳转到指定行(比如配置文件)
✏️ 编辑操作
快捷键 功能
Ctrl + K
剪切当前行
Ctrl + U
粘贴剪切的内容
Ctrl + O
保存(Write Out)
Ctrl + X
退出编辑器
Ctrl + C
显示光标位置(行/列)
🔍 查找与替换
快捷键 功能
Ctrl + W
查找字符串(Where Is)
Ctrl + \
查找并替换(Replace)
🪄 其他实用快捷键
快捷键 功能
Ctrl + G
打开帮助(超有用)
Ctrl + T
拼写检查(某些系统中)
小提示:在 nano 底部你会看到 ^ 开头的指令,比如 ^X 就是 Ctrl + X,很好记!