多账户使用Github的场景,设置 SSH 多账号使用特定 key

遇到多账户使用Github的场景,常难以管理ssh文件

解决方案:
你可以通过配置 ~/.ssh/config 文件,生成多个SSH key 让 Git 识别不同 key 来对应不同 GitHub 账号。

✅ 正确的 key 类型有这些常见选项:

rsa:老牌算法,兼容性最好

ed25519:现代算法,安全且体积小(推荐)

ecdsa:基于椭圆曲线算法,适用于部分系统

✨ 推荐使用这个命令生成新的 SSH key:

注意ed25519不是随便输入的字符,别搞错了

ssh-keygen -t ed25519 -C "[email protected]" -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 名称调整):

多账户使用Github的场景,设置 SSH 多账号使用特定 key_第1张图片

默认账号的配置(已有的)不用改

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,很好记!

你可能感兴趣的:(javascript,React.js,Vue.js,github,ssh,elasticsearch)