分享

VMWare下Ubuntu中搭建git 服务器

 Tech-d 2015-05-19
声明:本文大部分内容来自以下两个链接,根据公司机器跟网络的情况做了点修改:

环境:
windows 7 + git for windows 客户机
VMWare10 + Ubuntu14 虚拟机

1. 在ubuntu上配置git server:

1.1 安装ssh和git
    1. sudo apt-get install openssh-server openssh-client [这两个软件是用做两个系统间通信用的,如果不安装的话,就连接不上服务器端了]  

    2. sudo apt-get install git-core [这个是git]  

1.2 添加新账户
    1. sudo useradd -m git [这个是添加一个名字为git的用户)]  
    2. sudo passwd git [这个是为这个用户设置密码]  

1.3 给git账户添加sudo权限
    1. su - [进入root权限]  
    2. chmod u+w /etc/sudoers [将sudoers文本文件权限修改为可读写]
    3. gedit /etc/sudoers [用gedit打开文件修改,或者用vi也可以]
打开sudoers文件后,找到“root ALL=(ALL) ALL”这行,在它下面另起一行,添加"git ALL=(ALL) ALL", 然后保存退出。
    1. chmod u-w /etc/sudoers [将sudoers文本文件权限修改为只读]

1.4 建立仓库文件夹,并设置相应权限
    1. sudo mkdir /home/git/repositories [在git用户目录下创建一个新目录,今后的所有git repos都统一保存在里面]  
    2. sudo chown git:git /home/git/repositories [对文件夹设置它的所有者]  
    3. sudo chmod 755 /home/git/repositories [设置文件夹的权限]  

    4. git config --global user.name "myname" [向git指定一个用户名,这是因为git要运行,必须要有一个用户名和对应的邮箱,下面是添加邮箱,myname就是你指定的用户名,这个可以随意起]  
    5. git config --global user.email myname@gmail.com [是指定一个对应的邮箱,随便写一个自己的邮箱就行了]  

1.5 安装gitosis
    1. sudo apt-get install python-setuptools []   
    2. git clone https://github.com/res0nat0r/gitosis.git [从github网站clone gitosis源码]  

    3. cd gitosis [执行完上面后,在当前目录下会有一个gitosis文件,就是刚刚下载下来的源码]  
    4. sudo python setup.py install [安装gitosis]  

2 设置虚拟机的NAT网络连接

2.1 在Ubuntu虚拟机设置中,网络适配器设置如下,我们选的是NAT网络连接模式,和主机共享ip
 

2.2 设置全局网络参数:
 虚拟机IP地址的来源:进入ubuntu后,在终端中运行ifconfig, eth0 的 inet addr后面的一串数字就是虚拟机IP地址。

本机IP地址来源:DOS 中输入ipconfig,第一组IPv4地址,就是你本机的IP地址

2.3 测试两边的远程连接:
windows主机中,Git bash 中输入
    1. ssh git@192.168.20.94 [git就是ubunt系统上的git用户,后面的ip就是ubuntu系统的ip,因为我们设置了虚拟机跟主机共享IP,所以这里的ip地址是主机ip]  

 若出现
“ssh: connect to host 192.168.20.94 port 22: Bad file number”
可能性:
a. 虚拟机中没有正确安装ssh server,或者server没有启动,检查方法:在终端中运行ps –e | grep ssh 来查看是否有sshd进程;没有的话,用 /etc/init.d/ssh –start 来启动;

b. windows下22端口没有打开或者被占用;

c. ubuntu下22端口没有打开或者被占用;

当问题都解决后,再次运行ssh远程登录,会被要求输入git账户的密码,成功后,就会远程登录到ubuntu下了。此时执行pwd,mkdir之类的命令做测试,你会发现返回或执行的内容都反映到了你的ubuntu下。

3. 生成客户端的秘钥
3.1 在window下的git bash里运行
    1. ssh-keygen -t rsa  
默认会保存在c:/Users/(当前用户名)/.ssh目录下, 有一个id_rsa(私人密钥,保存好) 和 id_rsa.pub(公共密钥,要发送给服务器,用来辨别你的身份)

3.2 将生成的id_rsa.pub拷贝到ubuntu下

3.3 在ubuntu的终端中运行:
    1. sudo -H -u git gitosis-init < id_dsa.pub [用密钥对gitosis初始化]  
    2. sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update [更改我们原来创建仓库的文件夹下面,由于上面的初始化,会产生一个gitosis-admin的文件夹,把里面的hooks/post-update文件夹属性改一下]  

4. 测试git server跟git client之间的通信:
在windows的git bash中,切换到你想要的文件夹下,然后运行
    1. git clone git@192.168.20.94:/home/git/repositories/gitosis-admin.git [从服务器上把一个工程完全的拷贝下来。后面是表示通过git用户从ip为192.168.20.94服务器的/home/git/repositories/目录下,把gitosis-admin.git拷贝下来]  

如果一切顺利,你就可以在你指定的文件夹里看到一个名为gitosis-admin的文件夹了.




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多