多用户下git使用ssh管理配置

git进行项目管控,其实有很多优点,这次要使用svn创建分支的时候,竟然是直接把trunk给拷贝一份,而git是原本就支持分支的功能。有时候吧,你要是有多个的项目,而且每个项目上git的用户名,邮箱等,都不一样,那么有两种方法,一是使用https的方式,但是这个方式的话,基本每次push的时候,都要输入密码,太麻烦了。所以还是比较喜欢直接使用ssh的方式,本地托管个ssh的密钥。既不要输入密码,也方便配置。

首先,需要使用不同的用户名的话,那么就需要git不要使用有–global的配置。诸如此类的

git config --global user.name "username"

这样配置的话,会在~/.gitconfig写入你当前ubuntu用户的全局配置。如果你都是同一个用户名及email那当然是方便的。但是如果你的git有多个的用户名及email的时候。最好是使用诸如此类的命令。

git config --local user.name "username"

这样的话,只是在当前的git项目中配置,其实这个配置就是在当前项目的顶级目录的.git/config写入用户名而已。

如果使用了ssh方式进行配置的话,多个的用户则需要添加~/.ssh/config配置,默认情况下,是没有该文件的。比如我这边的~/.ssh/config配置如下:

Host github.com
    HostName github.com
    User user1
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.user1

Host github.com
    HostName github.com
    User user2
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.user2

Host jd.com
    HostName jd.com
    User user3
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.user3

这样配置,也就是使用hostname为github.com并且会根据用户名的不同,去使用不用的private key。这样就不会像https方式push的时候需要输入密码。很方便很快捷,基本是一劳永逸了。github上,也可以添加对应的公钥。其实这个配置是关于ssh的与git并没有多大关系,只是git使用的方式是ssh的方式。其实ssh还有很多种的配置方式。在ubuntu下,可以使用man命令查看帮助。

man 1 ssh

里面就有关于~/.ssh/config的说明。其可配置的参数还有很多。我也在学习中。:-)

 

转载请注明: 转载自elkPi.com

本文链接地址: 多用户下git使用ssh管理配置

1 Comment

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top