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 小时前
WebStorm macOS 安装调优与实战效果全景
ide·macos·webstorm
木子欢儿4 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
一个人旅程~2 天前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决
经验分享·笔记·macos·新浪微博
volunteer10242 天前
从仅剩 6 GB 到狂腾 70 GB:我的 256G Mac mini 深度清理与内存排查实战
macos
高调的涵涵2 天前
删了1.2GB,.git仍是1.2GB
git
程序员沉梦听雨2 天前
【Git】git-submodule子模块管理
git
全栈陈序员3 天前
Git】从入门到精通(八)—— git log:查看提交历史
大数据·git·elasticsearch
todoitbo3 天前
我在 Mac 上用 Docker 部署 Nexent:从拉取镜像到接入模型
macos·docker·大模型·ai智能体·nexent·快速入门与环境准备
独隅3 天前
WebStorm macOS 安装部署与高效调优实战指南
ide·macos·webstorm
7177773 天前
Git自建用什么工具比较好:Gitea、Forgejo、GitLab CE与Gitee的选型对比
git·gitlab·gitea