Git 配置多个 SSH keys

598 阅读1分钟

使用的 git 版本

git version 2.32.0

在 ~/.ssh(没有可以自己创建) 目录下新建一个 config 文件,添加如下内容,这里分别创建 github 和 gitlab 网站下的 SSH keys

# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey  # 采用 publickey 验证 windows不需要,删掉或注释
UseKeychain yes # 使用钥匙串,默认 no, windows 不需要,删掉或注释
AddKeysToAgent yes # 是否添加到钥匙串 windows不需要,删掉或注释
IdentityFile ~/.ssh/gitlab_id_rsa # 私匙文件地址
# github
Host github.com
HostName github.com
PreferredAuthentications publickey # windows不需要,删掉或注释
UseKeychain yes #  windows不需要,删掉或注释
AddKeysToAgent yes  # 是否添加到钥匙串 windows不需要,删掉或注释
IdentityFile ~/.ssh/github_id_rsa
也可以所有网站共用一个
Host *
PreferredAuthentications publickey
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa

创建 SSH keys

生成一个 github 用的 SSH key

ssh-keygen -t rsa -C 'xxxxx@xx.com' -f ~/.ssh/github_id_rsa

生成一个 gitlab 用的 SSH key

ssh-keygen -t rsa -C 'xxxxx@xx.com' -f ~/.ssh/gitlab_id_rsa

windows 下使用绝对路径

ssh-keygen -t rsa -C 'xxxxx@xx.com' -f C:/Users/[系统用户名]/.ssh/github_id_rsa
ssh-keygen -t rsa -C 'xxxxx@xx.com' -f C:/Users/[系统用户名]/.ssh/gitlab_id_rsa

查看 publicKey

mac

cat ~/.ssh/gitlab_id_rsa.pub
cat ~/.ssh/github_id_rsa.pub

windows

type ~/.ssh/gitlab_id_rsa.pub
type ~/.ssh/github_id_rsa.pub

将公匙添加到 github 和 gitlab 的设置中,分别测试

ssh -T git@gitlab.com
ssh -T git@github.com