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