在linux搭建git服务器
git在linux上的安装不多说,参考下面的文章就可以顺利完成,主要是依赖的库。
安装githttp://progit.org/book/zh/ch1-4.html
git麻烦在用户管理及管理上,下面上三种解决办法:
如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
有好几个办法可以让团队的每个人都有访问权。第一个办法是给每个人建立一个账户,直截了当但过于繁琐。反复的运行 adduser 并且给所有人设定临时密码可不是好玩的。
第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响commit的记录。
另一个办法是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效
为了简便选用了第二种办法,这种办法采用SSH公钥认证。
1、产生公钥
ssh-keygen -C "你的email地址" -t rsa
后面直接回车直到结束,中间可以不需要任何设置,该命令将生成一对非对称的公\私密钥,默认它们被存储在:
XP/2003用户:c:\Documents and Settings\登陆名\.ssh
Vista用户: c:\Users\登陆名\.ssh
该.ssh文件夹下面,密钥放在id_rsa文件里面,不用理会它;
2、在linux服务器上将公钥加到git用户的authorized_keys文件中。
可以参考:http://github.com/git-on-windows/rookies
git用户的建立及设置参考:http://progit.org/book/zh/ch4-4.html
注意,git上的仓库对git用户要有写权限,同时需要将/etc/ssh/sshd_config中将RSA认证打开,即:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
另外,我在ubuntu上连接用git用户连接时,报Agent admitted failure to sign using the key 错误,查了一下需要启动ssh-agent,然后添加id_rsa到ssh-agent中,再连接就可以了。
参考:http://www.jiangmiao.org/blog/559.html