博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在局域网部署git
阅读量:7086 次
发布时间:2019-06-28

本文共 1163 字,大约阅读时间需要 3 分钟。

hot3.png

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

你可能感兴趣的文章
jquery获取div距离顶部的距离
查看>>
CentOS使用EPEL YUM源
查看>>
大型网站架构设计及技术总结
查看>>
phpunit assert断言分类整理
查看>>
springMVC robots.txt 处理
查看>>
python2.0_s12_day19_前端模版使用
查看>>
从B树、B+树、B*树谈到R 树
查看>>
PHP json_decode object时报错Cannot use object of type stdClass as array
查看>>
【中文分词】条件随机场CRF
查看>>
hibernate一对一外键双向关联
查看>>
SharePoint 2013 同步FBA认证用户
查看>>
二叉树的遍历实现
查看>>
Sublimetext 3 经常使用插件
查看>>
四层和七层负载均衡的区别
查看>>
Ubuntu 16.04下没有/var/log/messages文件问题解决
查看>>
在C++98基础上学习C++11新特性
查看>>
视频H265格式压缩,软件压缩方法,硬件的没有条件,没法测试。
查看>>
docker 系列 - Dock高阶知识点文章汇集
查看>>
window下gvim中文界面改变成英文界面
查看>>
Flash 挡住层的解决方法。
查看>>