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

Linux下如何彻底切换GitHub SSH用户?改全局配置仍显示旧用户

解决Git SSH连接仍使用旧用户的问题

核心原因

GitHub的SSH认证是基于本地私钥与平台上公钥的匹配关系,和git config --global设置的用户名/邮箱无关——后者仅影响提交记录里的身份信息,不决定SSH连接时的账号身份。你当前测试返回旧用户,说明SSH仍在使用对应旧账号的密钥。

解决方案

方案1:完全切换为新用户(替换全局SSH密钥)

如果不需要保留旧账号的SSH访问,直接替换默认密钥即可:

  • 备份旧密钥:将~/.ssh/id_rsa和~/.ssh/id_rsa.pub重命名(比如id_rsa_old、id_rsa_old.pub)
  • 将新的私钥和公钥放到~/.ssh目录,并重命名为id_rsa和id_rsa.pub
  • 设置正确的文件权限(SSH对权限要求严格):
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    chmod 644 ~/.ssh/id_rsa.pub
    
  • 重新测试连接:ssh -T git@github.com,此时应返回新用户的提示

方案2:保留多账号,通过SSH配置区分

如果需要同时使用新旧账号,通过~/.ssh/config配置不同的主机别名:

  1. 在~/.ssh目录创建config文件(若不存在):
    touch ~/.ssh/config
    chmod 600 ~/.ssh/config
    
  2. 编辑config文件,添加新用户的配置(替换新密钥文件名为你的实际密钥名,比如id_rsa_work):
    Host github-work
      HostName github.com
      User git
      IdentityFile ~/.ssh/新密钥文件名
    
  3. 修改现有仓库的远程地址,将原地址中的git@github.com:替换为github-work:,比如:
    git remote set-url origin github-work:新用户名/仓库名.git
    
  4. 测试新账号连接:ssh -T github-work,应返回新用户的认证成功提示

补充:确保提交记录使用新身份

如果需要让提交记录显示新用户信息,除了全局配置,还可以针对单个仓库单独设置(优先级高于全局):

git config user.name "新用户名"
git config user.email "新邮箱"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:56:50