Windows2008R2下安装gitosis服务器(基于cygwin)
- 2017-10-26 16:16:00
- adnis
- 转贴:
- CSDN
- 3539
公司最近买了新的服务器,由于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仓库用户的目的。
联系人: | 郑女士 |
---|---|
电话: | 13792883250 |
Email: | zhengqiaoyin@cnezsoft.com |