目的
为了在同一台电脑上同时管理多个git账户且不产生冲突,需要进行如下配置。
配置过程
生成多个账号的私匙公匙
运行指令ssh-keygen -t rsa -C email,创建sshkey,email为自己的邮箱, 命名为id_rsa_1,密码设置为123456:
ssh-keygen -t rsa -C 1@qq.com
同理创建第二个账户。
经过操作后,/home/arm/.ssh路径下产生如下文件:
配置config文件
每个账号单独配置一个Host,每个Host要取一个别名,主要配置HostName和IdentityFile两个属性即可。HostName与git clone链接中的@和:之间的名称一致,如git clone git@192.168.64.133:test_li/test.git,则HostName为192.168.64.133。
参数 | 说明 |
---|---|
HostName | 这个是真实的域名地址 |
IdentityFile | 这里是id_rsa的地址 |
PreferredAuthentications | 配置登录时用什么权限认证–可设为 publickey,password publickey,keyboard-interactive~ 等 |
User | 配置使用用户名 |
在 .ssh 文件夹中创建config文件,内容如下:
# 配置 账号1
Host zh1
HostName 192.168.22.133
IdentityFile /home/arm/.ssh/id_rsa_1
PreferredAuthentications publickey
User username1
# 配置 账号2
Host zh2
HostName 192.168.64.133
IdentityFile /home/arm/.ssh/id_rsa_alp/id_rsa_2
PreferredAuthentications publickey
User username2
将公匙添加到git账户的SSH中
以gitlab为例进行操作:
连接测试
输入如下指令:
ssh -T git@192.168.64.133
192.168.64.133为配置的HostName。
注意:输入指令后,根据提示选择‘yes’。
管理项目
常用指令:
指令 | 说明 |
---|---|
git config --list | 查看当前工程的config配置参数 |
问题
此种方法不能实现多用户管理,上传到多账户工程的用户名要么是定义的global用户参数,要么是针对每一个工程定义的local用户参数。