目前我需要用到的git环境主要有:
- jnctf的gitlab
- github - drootkit
- github-crootkit
- github-hellorootkit
这四个账户,其中常用的 是gitlab和drootkit,一个用来提交内部项目,另一个用来更新博客,为了方便起见,需要在本地配置多个git公钥环境。
请注意
为了配置多个git的公钥环境,需要先下载git相关组件。请在下面的网页下载正版git:
下载之后进行安装即可,然后创建C:\Users\users\.ssh
目录,用来存放会用到的公钥和私钥文件。
注意1
使用命令ssh-keygen -t rsa -f id_rsa_my
生成密钥和公钥,一般会有一个-C email
的参数,这个是为了添加备注,有没有都行,csdn常见的命令格式是ssh-keygen -t rsa -C #########@*mail.com
-f :这个目的是可以选在将公钥私钥放在什么位置叫什么名称
该参数其实可以不加,因为在第二部就会叫你选择:
为了方便起见,我见你每一个都去命名,而不是新的覆盖旧的,这事傻逼的行为。
注意2
csdn一般会让你去设置一个global命令设置全局的用户名和邮箱,这一步是可以跳过的,因为他不重要而且会在意想不到的地方报错。如果你开始设置了,请使用命令:
$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"
来取消掉你的设置,当然如果你就一个hub或者lab之类的那就无所谓了。总结:不要进行设置
注意3
在上述进行的注意1中,后面会让你输入密码,这个可以直接回车表示忽略,但是为了安全起见可以设置一个常用的密码,但是请你记住他。
结合上述三个注意,你会得到这样的一个生成过程:
这样就可以在.ssh
目录中生成了两个文件,带有.pub
的是公钥文件,另一个是私钥文件。
注意4 - 容易报错的
如果你重命名了你的公钥或者私钥文件,那么在你进行clone或者push的时候会出现让你输入密码的情况;或者是clone是失败的情况。
出现报错是正常的,这时你就需要配置一下git安装目录里的ssh_config
文件:
将你的私钥在这里写上,并取消这一行的注释。然后保存,这时你就可以正常的使用git了。
多密钥的config配置
上述提到了我有很多的git仓库,我可以都用一个公钥,也可以针对不同的网站配置不同的公钥。
ssh_config配置
和上面的一样,新增一行就好了
经过测试发现是可以的,成功拉去了lab中的项目。
姓名-邮箱 config配置
这时有多个密钥,配置config的目的是在提交的时候,让内容知道自己要往哪里走,去哪个仓库。当然一般情况下是需要先git clone
一下的,但是这里不考虑这种情况。
config文件没有后缀名,所以先用txt编辑好之后删除后缀就行了。
然后保存一下,提交的时候改一下就行了。
但是在使用commit的时候会出现:
这是因为没有设置名字和邮箱,但是又不想去进行global设置,所以这里进入该项目的git目录下,然后找到config文件,在后面加入如下内容:
这样就可以直接提交了。