为不同的 git repo 配置 ssh key、gitconfig
对不同的邮箱生成不同的 ssh key 生成密钥对 # 设置公司的 ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/gitlab_rsa # 设置默认的,一般都是给 gitlab 用的 ssh-keygen -t rsa -C "[email protected]" # 查看生成的密钥对 ls -la ~/.ssh # -rw------- 1 genffy staff 2610 Feb 15 17:48 gitlab_rsa # -rw-r--r-- 1 genffy staff 578 Feb 15 17:48 gitlab_rsa.pub # -rw------- 1 genffy staff 2602 Feb 15 17:51 id_rsa # -rw-r--r-- 1 genffy staff 571 Feb 15 17:51 id_rsa.pub 创建配置文件 vim .ssh/config 填入以下内容 # gitlab.orgname.com Host gitlab.orgname.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/gitlab_rsa User [email protected] # github.com # Host github.com # AddKeysToAgent yes # UseKeychain yes # IdentityFile ~/.ssh/github_rsa # User [email protected] 测试设置效果 ssh -T [email protected] # Hi genffy! You've successfully authenticated, but GitHub does not provide shell access. ssh -T [email protected] # Welcome to GitLab, @zhengfei.li! 配置不同的 git 目录使用不同的密钥 复制默认的 .gitconfig cp .gitconfig .gitconfig-gitlab cp .gitconfig .gitconfig-id 编辑不同的配置文件的 user 信息 vim .gitconfig-gitlab [user] name = zhengfei.li email = [email protected] signingkey = ~/.ssh/gitlab_rsa.pub [pull] rebase = false [filter "lfs"] process = git-lfs filter-process required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f [init] defaultBranch = main [commit] gpgsign = true [gpg] format = ssh vim .gitconfig-id [user] name = genffy email = [email protected] signingkey = ~/.ssh/id_rsa.pub [pull] rebase = false [filter "lfs"] process = git-lfs filter-process required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f [init] defaultBranch = main [commit] gpgsign = true [gpg] format = ssh 设置不同仓库目录使用不同 .gitconfig vim .gitconfig [includeIf "gitdir:~/workspace/"] path = .gitconfig-id [includeIf "gitdir:~/Documents/workspace/"] path = .gitconfig-gitlab 最后可以在不同的目录下,修改下代码提交测试效果 ...