在局域网部署git

git实在是太好太好用的版本控制工具。本文介绍使用ssh在局域网内部署git,实现局域网范围内代码的版本控制,和团队协作。服务器和客户端都是基于ubuntu的。

服务器

  1. 准备一台ubuntu作为服务器,建一个专用账户,命名为git,设置密码。然后登录。
  2. 安装git,在ubuntu的命令行下允许以下命令
    apt-get install git-gui
  3. 安装ssh服务
    apt-get install openssh-server
  4. 建立一个git仓库,用于后面的试验
    mkdir ~/projectName.git
    git --bare init

客户端

  1. 客户端也以ubuntu为例。
  2. 测试ssh连接,服务器的ip以192.168.1.100为例
    ssh git@192.168.1.100
    不出意外,应该能连上服务器,这是后面的保证。
    测试好ssh连接后,退出
  3. 安装git
    apt-get install git-gui
  4. 克隆git仓库
    mkdir ~/work
    git clone ssh://git@192.168.1.100/home/git/projectName.git
    会提示输入密码,然后开始克隆。
    完成后,在~/work/projectName目录下就有克隆的git仓库了。
    这个目录下什么文件都没有?当然什么都没有,因为还没有添加文件。
    可以添加文件,修改,然后用git进行提交。
    再用git push推送到git服务器。

免密码

每次用git命令要连接服务器的时候,都会提示输入密码,稍现麻烦。可以免密码。

  1. 生成ssh密钥
    在需要免密的客户端,运行命令git gui打开git gui。
    打开菜单:帮助 -> show ssh key -> generate key
    拷贝生成的ssh密钥。
  2. 在git服务器端,打开文件~/.ssh/authorized_keys
    然后把上面拷贝的ssh密钥粘帖上去,保存。

用这台客户端访问git服务器就不需要密码了。

安全问题

每个客户端都有git服务器的密码,都可以随意访问git服务器的话,会有安全问题。如果希望客户端能访问git服务器的仓库,但又不能随意登陆git服务器做其他的操作。首先,要完成上面的免密操作;再者,禁用ssh的shell登陆。

在服务器上打开/etc/passwd文件,找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
修改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell。

转载于:https://my.oschina.net/kyle960/blog/1579210

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值