git通过authorized_keys来管理用户的权限(二)

时间:2021-12-24 14:28:28

首先git服务器的搭建参见:http://blog.csdn.net/lyhdream/article/details/49561645

在上一篇文章我们介绍了,通过创建用户来为开发者提供一个可以使用正常使用git服务器的权限。

但是,通过这样的方式,每增加一位开发者我们就会创建一个用户并把它加入到能够对该仓库进行正常操作的用户组。

当一个团队里的开发者一多,就显得比较麻烦。

这篇文章主要介绍,通过一个git用户,多个开发者通过上传自己的公钥到服务器的authorized_keys文件里,大家就可以通过一个用户来进行正常的代码推送。


git服务器的搭建参见“Git学习(一)git服务器的简易搭建”这篇文章的第一小节

我们在git服务器上,切换到git用户,并进入git用户的主目录,创建一个 .ssh目录

mkdir  .ssh
进入.ssh目录:

cd .ssh
为该用户创建一个公钥和私钥:

ssh-keygen -t rsa   //以rsa的加密方式生成秘钥对
在.ssh目录里创建一个authorized_keys文件,用于存放用户的公钥

touch authorized_keys
将 .ssh目录里生成的公钥复制到 authorized_keys 文件里

这样,服务端就已经具备了通过公钥来为用户提供推送代码的权限了。


假设现在有一个开发者(用户名为lyh1),想要对该仓库具有推送代码的权限,那么他就可以在自己电脑上,通过lyh1这个用户生成相应的公钥和私钥,吧公钥复制到服务端.ssh/authorized_keys文件里(另起一行),就可以了。

首先进入lyh1用户的用户主目录:

cd ~
创建.ssh目录:

mkdir  .ssh
进入.ssh目录,并生成公钥和私钥:

cd  .ssh
ssh-keygen

将xxx_pub.rsa文件里的公钥字符串复制到服务端的authorized_keys文件,那么该用户就可以通过服务端的git用户来推送代码了

(注意:如果此时通过公钥访问还是需要输入密码,重新使用ssh-keygen生成秘钥对,文件名改为id_rsa.pub以及id_rsa即可;具体需要查看/etc/ssh/ssh_config 配置文件里的要求,参见:http://www.cnblogs.com/liyuanhong/articles/6791608.html

到此,通过用户公钥的方法来配置git服务器的方法完成,下一篇文章将会介绍大规模团队下,使用Gitosis 来管理用户的authorized_keys