Windows2008R2下安装gitosis服务器(基于cygwin)

2017-10-26 16:16:00
adnis
转贴:
CSDN
3058

公司最近买了新的服务器,由于git的大趋势,公司决定将原来的tfs代码管理改为git,而且tfs只限于studio,其他的开发环境基本不适用,所以就最近研究了下git和git的权限管理。

看了《Git 权威指南》这本书,上面说了Git下权限管理有两个比较好的软件Gitosis和Gitolite,其中Gitolite是基于Gitosis开发的,功能更加强大。由于是刚刚入门,所以选择了一个功能较少的开始学习,下面是一些


安装和配置的经验,分享给大家,大体上步奏分为以下几步:


(1)安装cygwin和相关软件。

(2)配置ssh服务。

(3)生成公钥和私钥。

(3)安装gitosis。

(4)使用gitosis。


下面具体说明。

1, 首先是安装cygwin,在 这里可以下载cygwin的最新版本,基于操作系统的类型选择x86还是x64进行安装。

2,双击安装,出现如下页面,单击下一步安装。

3, 选择Install from Internet,单击下一步。

4, 选择安装路径,这里我们选择D:\cygwin,然后选择All User。

5,选择package的存储目录,这里我们选择D:\Tools\cygwin\package。

6,选择网络的连接方式,这里我们选择Direct Connection。

7,选择镜像下载地址,选择不同的会有不同的速度,这里我们选择了 http://mirros.163.com,也可以选择自己输入URL,单击下一步。

8, 选择需要下载的软件。这里我们要安装3个软件:git、openssh和python。在Search对话框中输入对应的名字就可以找到。

(1)git是在Devel目录下。

(2)openssh在Net目录下。

(3)python在python目录下。

9,等待软件下载,安装完成。


10,安装ssh。以管理员运行cygwin的终端,首先修改/etc/passwd和/etc/group的文件权限,输入:

chmod +r/etc/passwd
chmodu+w /etc/passwd
chmod +r/etc/group
chmodu+w /etc/gourp


11,输入ssh-host-config进行sshd服务安装。

在Should privilege separation be used? (yes/no),输入yes。

在new local account 'sshd'? (yes/no),输入yes,如果装了360等杀毒软件会提示风险,这里我们选择允许。

在(Say "no" if it is already installedas a service) (yes/no) ,输入yes。

在Enter the value of CYGWIN for the daemon: [] ,输入ntsec tty。

在Do you want to use a different name? (yes/no),输入no。

在Create new privileged user account'cyg_server'? (yes/no),输入yes,在下面弹出的地方输入密码,由于我们使用的是Windows2008所以密码需要由大小写字母和数字组成。

如果出现*** Info: Host configuration finished. Havefun!字样表示安装成功了。

12,以管理员运行cmd,然后输入net start sshd,开启ssh服务。


13, 配置ssh。ssh可以使用公钥和私钥认证,也可以通过密码进行登录。由于使用密码登录容易被攻击者暴力破解,所以我们这里管理禁用密码登录和root用户登录。如果使用密码登陆,在客户端输入:ssh yourname@your-server-ip,在输入密码就能够登录,如图。

14, 用你喜欢的方式修改/etc/sshd_config文件,进行配置。

修改端口:

将Port 22改为Port 22386(后面这个port的值随你定)

修改禁用密码和root登录(注意去掉了前面的#号):


#PermitRootLoginyes 改为 PermitRootLogin no
#ChallengeResponseAuthenticationyes 改为 ChallengeResponseAuthenticationno
#PasswordAuthenticationyes 改为 PasswordAuthentication no
#UsePAMno 改为 UsePAM yes


15,修改完成后,重启sshd服务才能生效,现在发现就不能用密码远程登录。PS:如果有防火墙,记得打开端口的上下行。

16,安装python工具包,我们这里安装的是python2.7,所以要下载对应的工具包。百度搜索setuptools-0.6c11-py2.7.egg,下载工具包,将工具包拷贝到/home/Administrator下。

17,输入chmod 755 /lib/python2.7/ -R修改读写权限。

18,输入./setuptools-0.6c11-py2.7.egg安装工具包。当出现Finished processing dependenciesfor setuptools==0.6c11字样表示安装成功。

19,安装gitosis。在/home/Administrator下新建一个sources目录,进入sources目录,然后输入git clone https://github.com/res0nat0r/gitosis.git,进行克隆。

20,进入gitosis目录,输入python setup.py install进行安装。出现Finished processing dependenciesfor gitosis==0.2字样表示安装成功。

21,在“控制面板”中新建一个git用户,标准用户,密码自定义。

22,将git用户添加到cygwin的passwd中,输入mkpasswd -l -u git >> /etc/passwd,查看/etc/passwd下git用户是否添加上了,输入vi /etc/passwd。

23,,新建一对公钥和私钥,输入ssh-keygen –C “youname@email.com” –t rsa,注意这个公钥和私钥一定要在cygwin中新建,不然会造成无法匹配,比如说使用windows下的Git Bash下输入上面同样的命令,再将公钥放入公钥匹配库,就无法进行匹配。

24,将/home/Administrator/.ssh下的id_rsa.pub(公钥)拷贝到/tmp目录下,并输入:

                  chmod 755 /tmp/id_rsa.pub

进行读写权限的修改。

25,关闭cygwin终端,shift+右键点击cygwin桌面快捷方式“以其他用户身份运行”。

26,在该终端下输入:

gitosis-init < /tmp/id_rsa.pub


         进行gitosis的安装,如果出现如图字样,表示安装成功。

27,gitosis的使用和配置。这里客户端采用的是windows8的64位系统,安装了git。

28,将预先生成的私钥文件id_rsa文件拷贝,C:\Users\Administrator\.ssh\目录下。

29,启动Git Bash,在你喜欢的位置输入:

                   git clone ssh://git@192.168.126.254:22386/gitosis-admin.git

这样我们就可以将gitosis的权限管理仓库克隆岛本地,进行修改。

30,在gitosis-admin目录下,有一个gitosis.conf文件,打开进行编辑,添加如下语句:


         [group test]
         members = youname@email.com
         writable = test


然后保存。

31,在Git Bash下输入:


         git add .
         git commit –m “just for test”
         git push


出现以下字样表示提交成功。

32,在你喜欢的位置新建一个test目录,在里面新建一个test .txt。然后输入:


         git init
         git add .
         git remote add originssh://git@192.168.126.254:22386/test.git
         git commit –m “just for test”
         git push origin master


成功会出现以下字样。

33,现在我们可以再服务器上的D:\cygwin64\home\git\repositories目录下看到一个test.git。

34,删除[group test]下members行,这样我们就不能push到远程服务器了,至此达到了管理git仓库用户的目的。


发表评论
评论通过审核后显示。