同一机器配置多个git账号的ssh秘钥

mac2022-06-30  130

背景

个人电脑因工作需要需连接公司gitlab,但是生成的ssh已经连接了GitHub,并且工作的邮箱和个人邮箱也不是一致的,此时需要对不同的平台进行不同的配置。

1.生成ssh key

打开git bash 输入以下命令

ssh-keygen -t rsa -C "github-user1@163.com"

第一个 ssh key 使用默认名字,三下回车,完成第一个默认的 ssh key。 在当前用户目录的 .ssh 目录下会生成 id_rsa 私钥文件和 id_rsa.pub 公钥文件,将 id_rsa.pub 公钥中的内容添加至 GitHub 云端中。 然后在 git bash 中输入以下命令测试该用户的 SSH 密钥是否有效:

ssh -T git@github.com

注明:该命令仅限于文件名为默认 id_rsa 的密钥

2.生成第二个ssh key

git bash 中输入以下命令,生成 gitlab的密钥,此时第二个 SSH Key 不能再使用默认的文件名id_rsa,否则会覆盖之前的密钥文件:

ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitlab -C "gitlab@qq.com"

同样将生成的id_rsa_gitlab.pub内容添加至gitlab云端中。 测试

ssh -T git@gitlab.com -i ~/.ssh/id_rsa_gitlab

3.配置config文件

.ssh 目录下创建一个 config 文本文件,每个账号配置一个Host节点,主要配置项说明

Host   # 主机别名 HostName  # 服务器真实地址 IdentityFile # 私钥文件路径 PreferredAuthentications # 认证方式 User  # 用户名

config 文件内容:

# ~/.ssh/config 配置多个git的ssh-key # 第一个默认的SSH Key Host github.com HostName github.com IdentityFile C:\\Users\\xx\\.ssh\\id_rsa PreferredAuthentications publickey # 第二个SSH Key Host gitlab.com HostName gitlab.com IdentityFile C:\\Users\\xx\\.ssh\\id_rsa_gitlab PreferredAuthentications publickey

4.为各自仓库配置不同的用户名和邮箱

git config --local user.name 'xx' && git config --local user.email 'xx@qq.com'
最新回复(0)