Linux下搭建Git服务器
1、安装Git
见 Jenkins持续集成环境部署 第四节
2、创建Git用户和用户组
groupadd git
useradd git -g git
3、创建证书
切换到git用户创建证书
su git
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
注意:.ssh的权限必须是700,authorized_keys的权限必须是600
生成公钥和私钥文件
$ cd .ssh
$ ssh-keygen -t rsa
首先会让你输入要保存公钥的位置,直接回车即可,接着会提示让你重复一个密码两次,如果不想再使用公钥的时候输入密码,直接回车即可。完成后会在home目录下的.ssh目录中生成两个文件id_rsa(私有密钥)和id_rsa.pub(公钥)。
4、初始化Git仓库
首先,我们选定一个目录作为Git仓库,假定是/home/gitdeport/runoob.git
$ cd /home
$ mkdir gitdeport
$ chown git:git gitdeport
$ cd gitdeport
$ git init --bare runoob.git
Initialized empty Git repository in /home/gitdeport/runoob.git/
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$ chown -R git:git runoob.git
5、在客户端安装git
先安装git,再安装TortoiseGit,安装好后打开Git Bash:
6、设置用户名、邮箱
Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置,如下图:
7、将Windows客户端和Linux服务端关联起来
想要将客户端和服务端连接的话要创建证书登录
打开windows的git bash,输入ssh-keygen -t rsa -C “邮箱”,生成ssh私钥和公钥,如下图:
此时,C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub。id_rsa 是私钥,id_rsa.pub是公钥。
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
服务端Git打开RSA认证
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
保存后重启sshd服务:
将客户端公钥加到服务器
将客户端公钥id_rsa.pub文件的内容写到服务器端 /home/git/.ssh/authorized_keys 文件里
注:以上密钥只适用于使用Git Bash进行命令管理git的,即clone、push、pull等相关操作在Git Bash才不用输入密码,而如果使用TortoiseGit 可视化界面,仍然要输入密码。
8、在客户端clone远程仓库
将服务器上的/home/gitdeport/runoob.git库克隆到本地 git clone 用户名@服务器地址:仓库路径,如下图:
造成上面报错的原因是Linux服务器上git的安装路径是/usr/local/git,不是默认路径,根据提示,在git服务器192.168.182.130上, 建立链接文件:
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
再次执行clone命令成功,如下图:
这个过程有一点要千万注意:.ssh的权限必须是700,authorized_keys的权限必须是600
9、禁用git用户的shell登录
出于安全考虑,创建的git用户不允许登录shell,可以通过编辑/etc/passed文件完成,找到类似下面这一行:
git:x::::/home/git:/bin/bash
改为:
git:x::::/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
TortoiseGit 无需输入密码方法
1、打开puttygen
2、生成公钥和私钥
点击save private key保存putty的私钥,putty的密钥的后缀名是ppk。 把公钥添加到.ssh/authorized_keys
注意:
公钥在authorized_keys的文件形式是一行一个公钥,否则该公钥不起作用。
3、在tortoisegit上使用密钥
这样就OK了!!
使用TortoiseGit将文件提交至git服务器
提交失败,报错了,原因是:Linux服务器上git的安装路径是/usr/local/git,不是默认路径。
根据提示,在git服务器192.168.182.130上, 建立链接文件:
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
再次提交成功,如下图:
Linux下搭建Git服务器的更多相关文章
- 【转】在Linux下搭建Git服务器
在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...
- 在Linux下搭建Git服务器的方法是什么样?
第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...
- 在 Linux 下搭建 Git 服务器
环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...
- 在 Linux 下搭建 Git 服务器(yum安装)
服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...
- 在Linux下搭建Git服务器步骤
环境: 服务器 CentOS6.6 + git(version 1.7.1) 客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux ...
- Linux 下搭建Git 服务器详细步骤
参考: https://www.cnblogs.com/dee0912/p/5815267.html#_label0 https://blog.csdn.net/carfge/article/deta ...
- kali linux 下搭建git服务器
参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...
- 在Linux下搭建git服务器
http://www.cnblogs.com/dee0912/p/5815267.html 步骤很详细,很受用
- Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit
本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...
随机推荐
- Python核心技术与实战——二十|Python的垃圾回收机制
今天要讲的是Python的垃圾回收机制 众所周知,我们现在的计算机都是图灵架构.图灵架构的本质,就是一条无限长的纸带,对应着我们的存储器.随着寄存器.异失性存储器(内存)和永久性存储器(硬盘)的出现, ...
- Kendo UI for jQuery自定义小部件第一弹!不得不看的入门指南
Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...
- 使用Vue自定义组件时,报did you register the component correctly? For recursive components, make sure to provide the "name" option.(未注册组件)的原因之一
错误信息: [Vue warn]: Unknown custom element: <list> - did you register the component correctly? F ...
- mybatis解析和基本运行原理
Mybatis的运行过程分为两大步: 第1步,读取配置文件缓存到Configuration对象,用于创建SqlSessionFactory: 第2步,SqlSession的执行过程.相对而言,SqlS ...
- node的安装和配置教程
node,除了做数据服务处理,还是各大框架的环境依赖,作为前端开发人员,node是必不可少的.好了,接下来直接开始. 一.根据自己的安装环境(即你的电脑系统版本)下载对应安装包,官网地址:https: ...
- postman -- token全局变量
var data = JSON.parse(responseBody);if (data.data.token) { tests["Body has token"] = true; ...
- node.js之CommonJS
1.CommonJS 我们只是在js文件中写下console.log('This is a test.');这句代码,node.js执行该js文件时: ( function(exports, requ ...
- 多版本python的pip 升级后, pip2 pip3 与python版本失配
mint19.2 本来pip 和 pip2 对应 python2.7 pip3对应python3.6 用源码安装了python3.7之后. 这样 版本也没问题. 但是, 用pip3.7 安装 ...
- luoguP2285 [HNOI2004]打鼹鼠 x
P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某 ...
- Codeforces Round #201.C-Alice and Bob
C. Alice and Bob time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...