centos搭建git服务器(转)
一:git服务安装
1.安装git相关组件
- [root@gitserver ~] yum -y install git
2.创建git用户
- [root@gitserver ~] groupadd git && useradd git -g git
3.创建git用户授权登录用户文件authorized_keys
- [root@gitserver ~] mkdir -p /home/git/.ssh/
- [root@gitserver ~] touch /home/git/.ssh/authorized_keys
- [root@gitserver ~] chmod 700 /home/git/.ssh
- [root@gitserver ~] chmod 600 /home/git/.ssh/authorized_keys
- [root@gitserver ~] chown git.git -R /home/git/.ssh #所属用户这里设置很关键哦
4.限制git用户权限,禁止shell登录
修改/etc/passwd 下git用户 git:x:1002:1002::/home/git:/bin/bash 为:
- git:x:1002:1002::/home/git:/usr/bin/git-shell
授权了/usr/bin/git-shell 所以还需要拷贝对应文件到git用户目录
- [root@gitserver ~] cp -R /usr/share/doc/git-1.8.3.1/contrib/git-shell-commands /home/git/
- [root@gitserver ~] chown git.git -R /home/git/git-shell-commands/
- [root@gitserver ~] chmod 755 /home/git/git-shell-commands/*
二:创建git仓库
选定一个目录作为Git仓库,假定是/home/gitdata/cnyunwei.git
- [root@gitserver ~] cd /home
- [root@gitserver home] mkdir gitdata
- [root@gitserver home] cd gitdata
- [root@gitserver gitdata] git init --bare cnyunwei.git #--bare 参数是创建空库
- [root@gitserver home] chown git.git -R /home/gitdata/ #必须设置为git用户,否则无法写入文件
三:创建本地用户公钥,并导入authorized_keys:
使用Git Bash 生成密钥:
下载安装:https://git-scm.com/download/win
打开Git Bash (类似于一个CMD窗口)
- ssh-keygen -t rsa -C "email@email.com" #邮箱这里可以选填,全部敲回车即可生成密钥
密钥文件在C:\Users\usrname\.ssh 下,将id_rsa.pub 的文件添加到服务器authorized_keys 文件中即可。
四:关联本地仓库和远程空仓库(这里是通过Git Bash 命令方式关联)
git是采用SSH传输,如果服务器的SSH端口不是22 就需要调整URL地址
- cd e:/cnyunwei #进入本地项目文件夹目录
- git remote add origin ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git #关联本地仓库到远程空仓库
默认SSH端口的情况下使用:
- git remote add origin git@192.168.31.10:/home/gitdata/cnyunwei.git
如果出现下面的报错,是没有本地仓库的意思,先生成本地仓库再关联即可。
- fatal: Not a git repository (or any of the parent directories): .git
- git init
- git remote add origin ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git
测试一下提交到远程仓库:
- git add --all
- git commit -m "初始化"
- git push -u origin master
git服务器的安装到此完成,如果在提交文件到远程仓库时提示如下错误,请检查服务器上git仓库所属用户和用户组是否为git 。
- remote: error: insufficient permission for adding an object to repository database ./objects
- remote: fatal: failed to write object
如果遇到protocol error: bad line length character: This问题
有可能是你修改了/etc/passwd中git为/sbin/nologin改成和本文一样的即可
转自https://www.cnyunwei.cc/archives/1072
centos搭建git服务器(转)的更多相关文章
- 在CentOS搭建Git服务器 转
在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公 ...
- CentOS搭建Git服务器及权限管理
声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考. 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSS ...
- 在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的
在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的 在删除掉/home/git目录后,每次 git push提交时,都让填写密码,烦 第一步:在本地找到id_rsa ...
- centos 搭建git服务器
centos 6搭建git服务器 安装 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm yum ins ...
- 自定义Git之使用centos搭建git 服务器
Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费. 这时我们就需要自己搭建一台Git服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1 ...
- Centos搭建 Git 服务器教程
搭建 GIT 服务器教程 下载安装 git Git 是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 此实验以 CentOS 7.2 x64 的系统为环境,搭建 git 服 ...
- CentOS 搭建 Git 服务器
官方文档移步 Git 服务器的搭建 安装 Git #yum install git 创建 Git 专用用户 #useradd git,改密码 #passwd git,切换至 Git 用户 #su gi ...
- CentOS搭建git服务器实测
Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议 1,安装: CentOS/Fedora: yum install git Ubuntu/Debian: ...
- CentOS搭建GIT服务器
安装git # 请确保您切换到了root账户 $ su root $ yum install -y git # 验证是否安装成功 $ git --version # 输出如下内容表示成功: git v ...
随机推荐
- 转:java读取配置文件的几种方法
转自: http://www.iteye.com/topic/56496 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小 ...
- mysql五:数据操作
一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...
- python通过POST提交页面请求
http://blog.csdn.net/liyzh_inspur/article/details/6294292 #网页POST提交数据 import urllibimport urllib2url ...
- suse更改root密码
http://blog.csdn.net/george188/article/details/5383013 在SUSE Linux环境下,进入单用户模式仍然需要密码,因此通过进单用户模式恢复root ...
- 安装VMware Tools的步骤和那些坑
背景环境:VMware workstation 12.5+Ubuntu16.04 首先VMware Tools在ubuntu中是及其不稳定的,也就是说,当你点击菜单栏中的install vmware ...
- C中的volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编译器可能优化读取和存储 ...
- 【乱入】Uva11021麻球繁衍
就是根据概率公式入门算算. #include<bits/stdc++.h> ; int n,m,k; double p[N],f[N]; int main(){ int T;scanf(& ...
- iptables 用法及常用模块总结
iptables传输数据包的过程: 1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去. 2. 如果数据包就是进入本机的,它就会沿着图向下移动, ...
- Linux下文件的三个时间意义及用法
Linux下文件的三个时间参数: (1)modification time(mtime):内容修改时间 这里的修改时间指的是文件的内容发生变化,而更新的时间. (2)change tim ...
- sqlalchemy源代码阅读随笔(1)
今天看的,是url.py模块,这个在create_engine中,起到的最用很大,其本质,就是对访问数据库的url,进行操作管里.我们可以直接访问这个类. 看一个简单的代码: from sqlalch ...