如何配置SSH Config实现两个GitLab账号同时正常使用
解决方案
核心问题原因
- SSH默认会尝试ssh-agent中缓存的所有可用密钥,若先匹配到第一个账号的密钥,GitLab服务器验证通过后就不会再尝试后续密钥,访问第二个账号的仓库时就会报权限错误
- GitLab SSH连接的固定用户为
git,原配置中填写个人账号用户名属于非规范配置,即使偶然连通也存在兼容性风险
正确配置步骤
1. 修改SSH config配置
将~/.ssh/config文件替换为以下内容:
Host gitlab-roulette HostName gitlab.com User git IdentityFile /home/norayr_ghukasyan/.ssh/id_ed25519_roulette # 强制只使用指定的私钥认证,不使用ssh-agent缓存的其他密钥 IdentitiesOnly yes Host gitlab-devlix HostName gitlab.com User git IdentityFile /home/norayr_ghukasyan/.ssh/id_ed25519_devlix IdentitiesOnly yes
2. 调整仓库远程URL
针对第二个账号的本地仓库,修改远程地址为配置的Host别名:
git remote set-url origin git@gitlab-devlix:<你的仓库路径>.git # 示例:git remote set-url origin git@gitlab-devlix:norayr.ghukasyan/demo-project.git
如果是新克隆仓库,直接使用对应别名即可:
# 克隆第一个账号的仓库 git clone git@gitlab-roulette:norayr.ghukasian/project1.git # 克隆第二个账号的仓库 git clone git@gitlab-devlix:norayr.ghukasyan/project2.git
3. 验证配置是否生效
分别执行两条测试命令,确认都返回GitLab的欢迎提示:
ssh -T git@gitlab-roulette ssh -T git@gitlab-devlix
如果都返回Welcome to GitLab, @xxx!的提示,说明两个账号的SSH配置都已正常工作。
内容的提问来源于stack exchange,提问作者Norayr Ghukasyan
相关产品推荐
相关产品推荐

