Git设置多个SSH-Key
本文介绍如何配置Git的SSH-Key,以及在一台电脑上配置多个远程仓库网站的SSH-Key。
Git与远程仓库,如Github、Gitee、GitLab连接时需要输入账号密码,但是也可以通过配置SSH Key的方式免去频繁输入账号密码的情况。另外,可能会存在需要配置多个远程仓库,或者同种远程仓库需要配置多个账号的SSH Key的情况,比如连接公司的仓库需要一个,连接自己的仓库需要一个。
1. 单个SSH Key配置
1.1 生成SSH Key公钥私钥
打开git bash,输入以下命令:
1 | ssh-keygen -t rsa -C 'xxxxx@youremail.com' |
一路回车,默认会在C:\Users\Username\.ssh
目录下生成两个文件:id_rsa
和id_rsa.pub
,前者为私钥,需要放在本地,后者为公钥,需要配置到远程仓库中。
1.2 在远程仓库中配置SSH Key公钥
登录远程仓库网站(Github、Gitee、GitLab),找到关于SSH Key的设置。
用记事本打开id_rsa.pub
,复制公钥,粘贴到远程仓库的SSH Key设置中。
完成后根据远程仓库类别,输入以下命令进行测试:
1 | ssh -T git@github.com |
如果连接的是公司的远程仓库,@后面接的就是公司的远程仓库地址。
2. 多个SSH Key配置
注:使用多个SSH Key的话,需要在Git项目中配置本地的name和email,这样提交代码时,使用的就是local配置,而非global配置。只需要创建配置文件config即可。
2.1 生成多个SSH Key
SSH Key文件不能同名。打开git bash,输入以下命令:
1 | ssh-keygen -t rsa -C 'xxxxx@youremail.com' -f ~/.ssh/id_rsa_github |
默认会在C:\Users\Username.ssh
中生成指定名称的id_rsa
和id_rsa.pub
。
然后像配置单个SSH Key一样,在远程仓库中添加SSH Key公钥id_rsa.pub
。
2.2 创建并配置config文件
在C:\Users\Username.ssh
文件夹下创建一个config
文件,无文件名后缀。
使用记事本打开,编辑以下内容:
1 | # Github配置 |
配置完成后依然是输入以下命令进行测试:
1 | ssh -T git@github.com |
3. 多个SSH Key情况下提交代码
3.1 local配置
在Git项目根目录打开Git Bash,输入以下命令:
1 | git config --local user.name 用户名 |
在Git项目的根目录/.git/config文件
中,可以看到[user]配置
即为配置成功,此后再提交代码,则会使用该name和email,在不同的项目中即可使用不同的账户提交到不同的远程仓库网站。
可以使用git config --global --list
查看全局配置,使用git config --global --list
查看项目本地配置。
3.2 提交代码
提交代码时,可以使用Git Bash命令行,也可以使用IDEA连接远程仓库提交。
1 | # 提交代码三板斧 |