当前位置: 首页 > news >正文

多账户使用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 名称调整):

ssh
复制
编辑

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

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

http://www.dtcms.com/a/122460.html

相关文章:

  • MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
  • Pytorch查看神经网络结构和参数量
  • MongoDB 新手笔记
  • GitHub优秀项目:数据湖的管理系统LakeFS
  • 42、JavaEE高级主题:WebSocket详解
  • linux入门四:Linux 编译器
  • leetcode_面试题 02.07. 链表相交_java
  • Interactron: Embodied Adaptive Object Detection(训练时进行更新参数) 还没看懂
  • 金融数据分析(Python)个人学习笔记(7):网络数据采集以及FNN分类
  • React八案例上
  • Seq2Seq - 编码器(Encoder)和解码器(Decoder)
  • Linux系统安全及应用
  • Spring AI Alibaba MCP 市场正式上线!
  • spark安装过程问题
  • CSS 定位属性的生动比喻:以排队为例理解 relative 与 absolute
  • HP EVA SAN 的基础知识及常见数据丢失问题
  • 【nnUNetv2进阶】二十九、nnUNetv2 魔改网络-小试牛刀-引入RCM(Rectangular Self-Calibration Module)
  • Mybatis操作数据库
  • 8. git branch
  • spring mvc 异常处理中@RestControllerAdvice 和 @ControllerAdvice 对比详解
  • Linux服务器——Samba服务器
  • 【C++编程基础-关键字】:constexpr和const
  • Vue3服务端渲染实战:Nuxt3深度解析与高性能SSR架构设计
  • vLLM实战:多机多卡大模型分布式推理部署全流程指南
  • 深入探究Python的re模块及其在爬虫中的应用
  • 界面控件DevExpress WPF v25.1新功能预览 - 数据网格、报表性能增强
  • [特殊字符] Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元!
  • ARM裸机全集学习笔记【链接来源:向阳而生,逆风翻盘】
  • 智能家居设备
  • Ansible(5)——编写 Playbook