You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建多个EdDSA SSH密钥?解决多GitHub账号密钥冲突

如何创建多个EdDSA(id_ed25519)SSH密钥并用于多GitHub账号

一、创建自定义名称的EdDSA密钥

你之前的命令错误在于把自定义名称和密钥类型混在一起了。正确的做法是用-t指定密钥类型为ed25519,再用-f参数指定自定义文件名。示例命令:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_github_work -C "workemail@example.com"
  • -t ed25519:指定生成EdDSA类型的密钥
  • -f ~/.ssh/id_ed25519_github_work:指定密钥文件的路径和名称(这里命名为针对工作账号的密钥)
  • -C "workemail@example.com":添加注释,方便识别密钥用途

执行命令后,按提示设置密码(可选,建议设置以提升安全性),就能生成两个文件:id_ed25519_github_work(私钥)和id_ed25519_github_work.pub(公钥)。重复这个命令,替换文件名和注释,即可生成多个不同的EdDSA密钥。

二、配置多GitHub账号使用不同密钥

GitHub不允许同一SSH密钥绑定多个账号,需要通过SSH配置文件让不同的GitHub操作匹配对应的密钥:

  1. 创建/编辑SSH配置文件
    打开终端,编辑~/.ssh/config文件(如果不存在则直接创建):
nano ~/.ssh/config
  1. 添加账号配置块
    为每个GitHub账号添加独立的配置,示例:
# 工作GitHub账号配置
Host github.com-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_work

# 个人GitHub账号配置
Host github.com-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_personal
  • Host:自定义别名,后续操作时用来替代github.com
  • HostName:实际的GitHub域名,固定为github.com
  • User:固定为git(GitHub SSH操作的默认用户)
  • IdentityFile:指定该账号对应的私钥路径
  1. 将公钥添加到对应GitHub账号
    对每个密钥,复制公钥内容:
cat ~/.ssh/id_ed25519_github_work.pub

登录对应的GitHub账号,进入Settings -> SSH and GPG keys,点击New SSH key,粘贴公钥内容并保存。

  1. 使用对应密钥操作仓库
  • 克隆新仓库时,用自定义Host别名替代github.com:
    git clone git@github.com-work:workaccount/repo-name.git
    
  • 对已有的仓库,修改远程地址为对应别名:
    git remote set-url origin git@github.com-work:workaccount/repo-name.git
    

这样就能实现不同GitHub账号使用各自的EdDSA密钥进行操作。

内容的提问来源于stack exchange,提问作者Jonca33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:15:32