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

来源:互联网 发布:java 运维管理系统 编辑:程序博客网 时间:2024/04/30 03:40

公司最近买了新的服务器,由于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 clonehttps://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仓库用户的目的。

参考文献:

实战Win7下安装Gitos http://is(Windows下的git服务器)

《Git权威指南》-蒋鑫


0 0
原创粉丝点击