http://blog.chinaunix.net/uid-15007890-id-3217101.html
在使用Git之前,大家首先要明确几个概念:git服务器、git客户端和git服务器管理员;
通常,git服务器上需要安装OpenSSH Server、Git、Gitosis和Apache2(如果想使用Gitweb的话)。
一、Git服务端 安装:
1、安装OpenSSH Server:
首先,使用ps -e|grep ssh命令,检查本机上是否已经运行ssh服务。如果没有,继续;否则,跳过此步骤。
执行命令:
sudo apt-get install openssh-server
root@pb-desktop:~# ps -e|grep ssh
766 ? 00:00:00 sshd
2062 ? 00:00:00 ssh-agent
2400 ? 00:00:00 sshd
2、修改ssh服务端配置文件/etc/ssh/sshd_config (当前用户为wirror800)
Port 22 # 修改成你想要的登陆端口,如2222
PermitRootLogin no # 禁止root用户登陆
StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥认证
PasswordAuthentication no # 禁止密码认证,默认是打开的
ServerKeyBits 1024 # 修改后变为此状态,将ServerKey强度改为1024比特
PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录
修改完成后,重启ssh服务:
sudo /etc/init.d/ssh restart
注意:至此,服务端SSH的操作就已经结束了。网上说的“id_rsa文件拷贝到Client端的~/.ssh/目录下,将id_rsa.pub拷贝到
Server端的~/.ssh/目录下,改名为authorized_keys ”其实都是不准确的。id_rsa是使用 ssh-keygen生成的rsa私钥,id_rsa.pub
是同时生成的公钥,服务器端通信使用的秘钥可以应该由服务器管理员来创建和管理,如果你想把当前用户wirror800作为管理
员也是可以的,相关管理员的操作见本文第二部分。不推荐在ubuntu服务器端建立管理员帐号。
建议大家参考一下OpenSSH的相关内容:http://www.freebsd.org/doc/zh_CN/books/handbook/openssh.html
3.安装git(当前用户为wirror800)
apt-get install git-core
4.安装gitosis(为什么要使用gitosis是大家首先需要明确的问题)(当前用户为wirror800)
获取gitosis安装包;
git@zxk:~$ mkdir ~/.gitosis_setop
git@zxk:~$ cd ~/.gitosis_setop/
git@zxk:~/.gitosis_setop$ git clone git://eagain.net/gitosis.git
如果这个不行:
Cloning into 'gitosis'...
fatal: unable to connect to eagain.net:
eagain.net[0: 208.78.102.120]: errno=Connection refused
则可从如下位置clone gitosis包:
git clone https://github.com/res0nat0r/gitosis.git
Cloning into 'gitosis'...
remote: Counting objects: 727, done.
remote: Compressing objects: 100% (216/216), done.
remote: Total 727 (delta 510), reused 701 (delta 495)
Receiving objects: 100% (727/727), 111.73 KiB | 44 KiB/s, done.
Resolving deltas: 100% (510/510), done.
安装gitosis包;
git@zxk:~/.gitosis_setop$ cd gitosis/
git@zxk:~/.gitosis_setop/gitosis$ sudo python setup.py install 失败了;
若报错,可通过如下命令解决:
git@zxk:wgethttp://peak.telecommunity.com/dist/ez_setup.py
git@zxk:python ez_setup.py
5. 为gitosis创建系统用户(当前用户为wirror800)
sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git git
这种方法是网上比较常见的方法,创建的是一个禁用密码的git用户,但在使用su命令切换git用户的时候,空密码老是
验证失败,大家可以使用下面的方法来创建git用户:
sudo useradd -m git
sudo passwd git
=================
把所有用户的公钥保存在 authorized_keys 文件的做法,只能凑和一阵子,当用户数量达到几百人的规模时,管理起来就会十分痛苦。每次改删用户都必须登录服务器不去说,这种做法还缺少必要的权限管理 — 每个人都对所有项目拥有完整的读写权限。
幸好我们还可以选择应用广泛的 Gitosis 项目。简单地说,Gitosis 就是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本。有趣的是,用来添加用户和设定权限的并非通过网页程序,而只是管理一个特殊的 Git 仓库。你只需要在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis 就会随之改变运行策略,听起来就很酷,对吧?
Gitosis 的安装算不上傻瓜化,但也不算太难。用 Linux 服务器架设起来最简单 — 以下例子中,我们使用装有 Ubuntu 8.10 系统的服务器。
Gitosis 的工作依赖于某些 Python 工具,所以首先要安装 Python 的 setuptools 包,在 Ubuntu 上称为 python-setuptools:
================