git与ssh多账户共存
- 前言
- git多账户
- ssh多公钥
- 参考
前言
在使用git与ssh时,经常会遇到多个账户共存的情况
例如使用不同的公钥登陆到不同的服务;使用不同的git信息进行commit
git多账户
在默认情况下 git的信息存在 ~/.gitconfig
可以使用命令查看
git config --global user.name
git config --global user.email
使用文件夹来区分不同的git信息, 需要以/结尾,并且可以使用**通配子路径
[includeIf "gitdir:path/to/you/dir/"]path = ~/.gitconfig_self
[includeIf "gitdir:path/to/you/dir/**"]path = ~/.gitconfig_self1
例如.gitconfig_self
文件
[user]name = youNameemail = youEmail@example.com
进入自定义路径 执行
git config user.email
可以看到用户名发生变化
ssh多公钥
生成密钥
ssh-keygen -t rsa -C "aaa@aaa.com" -f ~/.ssh/id_rsa_aaa
ssh-keygen -t rsa -C "bbb@bbb.com" -f ~/.ssh/id_rsa_bbb
如果~/.ssh/config
不存在
touch ~/.ssh/config
# aaa
Host aaa.comHostName aaa.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa_aaa
# bbb
Host aaa.comHostName bbb.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa_bbb
# 配置文件参数
# Host 是一个别名,建议配置为HostName
# HostName 要登录主机的主机名
# User 登录名
# PreferredAuthentications publickey,password,keyboard-interactive
# IdentityFile 指明上面User对应的identityFile路径
在gitlab/github上配置好公钥登陆之后,进行验证
ssh -T git@github.com
参考
https://git-scm.com/docs/git-config
https://zhuanlan.zhihu.com/p/379982981
https://juejin.cn/post/6987392622407254029