mac Git 账户切换问题

之前有一台mac上面登录的是别人的账户,现在因为人才流动,这台电脑上的账户需要换成我的,这个时候UGIT和sourcetree都把账户切换了过来,但是脚本执行git命令的时候都会提示失败,这是因为旧密钥可能还在 ~/.ssh/ 目录里,SSH 可能会优先用它。

第一步:生成你自己的 SSH 密钥

不要用旧密钥,直接生成一对新的。在终端执行:

bash

ssh-keygen -t ed25519 -C "XXX@dobest.com"

一路按回车即可(除非你想设密码)。这会生成 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。

第二步:把新公钥添加到你的 GitLab 账户

查看并复制公钥内容:

bash

cat ~/.ssh/id_ed25519.pub

登录 GitLab 网页端(用你 XXX 的账户),进入 Settings → SSH Keys,把公钥粘贴进去保存。同时,建议你在同一个页面检查一下,删掉列表里属于孙爱良的旧 SSH Key(如果还在的话),防止残留。

第三步:让本机 SSH 使用新密钥,不再用旧密钥

旧密钥可能还在 ~/.ssh/ 目录里,SSH 可能会优先用它。你需要明确告诉 SSH:连接 code.xxxxx.com 时,只用你新生成的密钥。

编辑(或创建)SSH 配置文件:

bash

nano ~/.ssh/config

写入以下内容:

text

Host code.dobest.com

IdentityFile ~/.ssh/id_ed25519

IdentitiesOnly yes

保存退出。IdentitiesOnly yes 是关键,它强制 SSH 只用指定的这把钥匙,不再乱试其他旧密钥。

第四步:清理全局 Git 署名(你之前已经看到了)

你的 user.name 还是 XXX,这个是对的,但确认一下邮箱也换成你的:

bash

git config --global user.name "XXX"
git config --global user.email "XXX@dobest.com"
第五步:验证并拉取

先测试 SSH 连接,看服务器现在认的是谁:

bash

ssh -T git@code.dobest.com

期望输出应该是 Welcome to GitLab, @XXX!(或你的显示名),而不是以前的旧名字。

确认身份正确后,回到仓库目录执行:

bash

git pull

补充:如果还有问题

如果 ssh -T 仍然显示旧用户,说明旧密钥还在被使用。可以检查 ~/.ssh/ 目录下是否有 id_rsa 等旧文件,将它们移走(比如 mkdir ~/.ssh/old_backup && mv ~/.ssh/id_rsa* ~/.ssh/old_backup/),再试一次。

相关推荐
留岁1 小时前
Git 命令行学习记录
git·学习·elasticsearch
铁锚2 小时前
清理macos系统DS_Store文件的sh脚本
macos
笨笨饿2 小时前
#142_VS Code.map文件插件的用法
git·python·stm32·单片机·嵌入式硬件·物联网·vim
鬼手点金4 小时前
如何选择模型
java·前端·人工智能·git·深度学习
余槐i4 小时前
Claude Code Skills 放对目录却不生效:插件启用顺序与缓存的三个坑
git·开发工具·ai agent·mcp·claude code
Hello_Pyhx7 小时前
CrossPaste 跨系统剪贴板配置:按发现、配对、同步逐层排查
macos·电脑
king13598745501 天前
LFM2.5-24B-A2B Mac 本地部署:内存估算、GGUF/MLX 与 Python 预检脚本
人工智能·macos
骑着蜗牛撵大象3271 天前
链路层不只是 MAC:以太网帧、ARP 与 802.1Q VLAN 的逐跳拆解
计算机网络·macos·ar·vlan·mac地址·链路层
程序员差不多先生1 天前
Anthropic 用 5 个月重写了 Git:当 AI Agent 把版本控制系统逼到墙角
人工智能·git·elasticsearch·deepseek v4 pro·kimi k3·glm 5.3·qwen3.7 max