github 公司和个人帐号分离
- 0次
- 2021-06-08 12:25:01
- idczone
有好的解决方案吗?
terminal 端需要在 ssh 下配置两个不同的主机。
web gui 又没有大带宽服务器好的切换帐号的软件。
Web 上可以用 Firefox 的 Multi-Account Containers
一个 ff 一个 chrome 表示没啥问题 :doge:
IncludeIf
https://ayase.moe/2021/03/09/customized-git-config/
弄两台电脑,否则迟早出事。
这个我是在.config 文件里面设置了不同的路由,但是认证信息发现还是有问题。
……只能每次二次确认。
我是用 ed25519 和 rsa 算法生成了两个 key 在 ~/.ssh 下。
这样可以分别工作,虽然没理解原理。
VM 或者 WSL
等等,lz 的 github 到底指的是 git 不同账号,还是浏览器里 github 登陆不同账号?
浏览器 github 账号的话就用 firefox,firefox 的 container 是真的非常好用,firefox 的几个优势功能之一
git 的的话不想纠结配置只想点鼠标的话,可以使用 fork 这个 git 的 gui,能轻松在几个账号间切换
终端设置好 ssh.config 就可以了,浏览器的话可以开两个不同的分别登录
${HOME}/.ssh/config 指定不同 host 以及对应身份和私钥
web 端用两个浏览器分别登录不同账号
公司的用 SSH,个人的使用 HTTP 方式就可以了。
`ssh-add -k your_rsa_path`
Host github github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
IdentitiesOnly yes
Host github-guest github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/github-guest
IdentitiesOnly yes
ssh 的 config 文件不好吗, 我好几个电脑的不同系统共用一套 config, 虽然过几天公司要改成统一用跳板机不知道对 git 有没有影响
暂时是不同公司不同文件夹, 反正顶层 Include ~/.ssh/company1/config 一堆子文件夹下的 config+.pub 还是挺好用的, 相对路径还是香
每个项目都可以单独设置 .git config 你的需求完全可以实现,项目的 config 优先级高于全局。
但是,我还是建议自己私人项目不要使用公司财产(如果电脑是公司发的),上班时间使用公司财产的代码产出所属权归公司。
用 pageant 那个小东西管理 不同的密钥?
同一个 git 服务为什么要分开?
如果你公司用的是 github 企业版那就是两个不同的 git 服务,可以用~/.ssh/config 区分不同 host 使用不同的 pub_key 。
如果你公司用的也是社区版,那就把公司邮箱加到你个人账户的 emails 里面就好了,然后本地默认配置个人邮箱或者公司邮箱,但是非默认配置邮箱的项目需要设置下项目级别的 email 和 username 就好了(或者用 includeIf 区分目录动态配置)。
如果已经有两个 github 账户对应个人和公司的项目,那就其中一个账户的 github 地址用别名好了。
比如~/.ssh/config 配置为:
```
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github1
User gituser1
Host github2.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github2
User gituser2
```
使用的唯一差别就是下载代码的时候记得把公司项目的 ssh 地址 github.com 改成 github2.com (或者其他别名)
另外使用 includeIf 区分不同目录使用不同.gitconfig,需要本地 git 版本是 2.13.0 以上才支持
在~/目录下面存在三个配置文件,
.gitconfig // 全局通用配置文件
.gitconfig-my // 个人工程配置文件
.gitconfig-work // 公司工程配置文件
全局~/.gitconfig 配置如下
```
[user]
name = yourname
email = [email&/>[includeIf "gitdir:~/myspace/"]
path = .gitconfig-my
[includeIf "gitdir:~/workspace/"]
path = .gitconfig-work
```
个人.gitconfig-my 配置如下
```
[user]
name = gituser1
email = [email&/>```
公司.gitconfig-work 配置如下
```
[user]
name = gituser2
email = [email&/>```
为啥非要走 ssh 协议,https+token 也是可以的
上班的时候为什么要用个人的,上班时间产出都算作公司的。
我统一回复一下。我有一些个人技巧,仅自己看。是放在自己的 repo 里。不是编码。