惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
B
Blog RSS Feed
Vercel News
Vercel News
博客园 - 聂微东
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
GbyAI
GbyAI
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
B
Blog

TimeMachine Notes

Doris 物化视图 漫谈数据库索引 工作中实践过的数据流架构 druid集群运维 doris/starrocks 碎碎念 未知的征程 doris实时数据摄入测试 之前的一些学习目标和计划 OneData探索 MR Job Counters 分析 druid 离线摄入任务优化 druid 问题记录 基于 gitbook 搭建笔记站点 Prometheus + Grafana 监控 - Kafka Mac-Homebrew-常见问题 Mac重装系统找不到磁盘主盘,无法抹掉 Elasticsearch 与 Hive 集成 实时消费 MySQL Binlog 2020阴霾之下
多个 git 账户配置 SSH
时光机 · 2020-12-26 · via TimeMachine Notes

前言

个人代码维护在 github,而目前大多数公司代码维护在私有 gitlab。这是两套不同的账户体系,并且一般私有 gitlab 的 commit email 不能更改,git 全局的用户名和邮箱只能有一个。这就导致了如下问题 → 不管配置了几个 SSH pub key,SSH 认证最终走的都是 global 的用户名的认证(比如你全局的用户是 github 的,那么你提交 gitlab 就会报 Permission Denied)。本文主要用来解决此问题。
其实多个 SSH 配置的话都是这样搞的,配个路由就好了。

配置 SSH

github

生成 ssh pub key,并将其添加到 github settings 的 SSH 配置中。

1
ssh-keygen -t rsa -C '${your github emial}' -f github

gitlab

生成 ssh pub key,并将其添加到 gitlab settings 的 SSH 配置中。

1
ssh-keygen -t rsa -C '${your gitlab emial}' -f gitlab

SSH config

修改 ssh 配置文件,用来配置不同 host 下用的 SSH 验证文件是哪个。可以理解为路由,发的请求都会查阅此文件来确定验证的 key 是哪个。

1
2
3
4
5
6
7
8
9
10
Host gitlab
HostName git.zuoyebang.cc
User zhanghailiang01
IdentityFile ~/.ssh/gitlab


Host github.com
HostName github.com
User xxx
IdentityFile ~/.ssh/github

验证

验证配置好的 SSH 是否可用

1
2
3
4
5
$ ssh -T git@gitlab
Welcome to GitLab, @xxx!

$ ssh -T [email protected]
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

使用

经过上步验证通过后,免密提交 gitlab 还有一定的问题。我们还需要修改对应 gitlab 项目的用户名和邮箱,因为我们提交代码的账户认证是这个,而不是 git 全局的用户。修改完成之后,可以查看对应项目下的 .git/config 文件是否修改成功。

1
git config --local user.name 'xxx' && git config --local user.email '[email protected]'

对于以后新增的 gitlab 项目,都要执行此步。