Linux学习笔记——搭建Git服务器
2017-08-31 23:07
204 查看
GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
服务机操作步骤如下:
一、安装git和ssh协议客户/服务软件
$ sudo apt install git openssh-server openssh-client
(安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件)
二、系统创建一个用户并设置git管理者及邮箱,用来管理git服务
$ sudo adduser AdminName
$ git config --global user.name "AdminName"
$ git config --global user.email "email@example.com"
三、创建ssh key,因为git服务器与用户间的文件传输是通过ssh协议加密的
$ ssh-keygen -t rsa -C "email@example.com"
该命令执行后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,即私钥和公钥。
四、初始化Git服务器仓库
假定repositories作为Git目录,下面命令在该目录下新建一个git仓库
$ sudo mkdir /home/AdminName/repositories
$ sudo git init --bare /home/AdminName/repositories/reponame.git
五、修改Git目录和Git仓库到指定权限,否则客户机无法通过ssh协议访问Git服务器上的文件
$ sudo chmod 700 /home/AdminName/repositories
$ sudo chmod 777 -R /home/AdminName/repositories/reponame.git
六、安全设置
出于安全考虑,git用户不允许登录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,因为我们为git用户指定的git-shell每次一登录就自动退出。
七、公钥管理
如果团队很小,把每个允许访问的人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里(需自己创建)就可以了。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥,这个就不细说了。
客户机操作步骤如下:
服务机操作步骤如下:
一、安装git和ssh协议客户/服务软件
$ sudo apt install git openssh-server openssh-client
(安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件)
二、系统创建一个用户并设置git管理者及邮箱,用来管理git服务
$ sudo adduser AdminName
$ git config --global user.name "AdminName"
$ git config --global user.email "email@example.com"
三、创建ssh key,因为git服务器与用户间的文件传输是通过ssh协议加密的
$ ssh-keygen -t rsa -C "email@example.com"
该命令执行后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,即私钥和公钥。
四、初始化Git服务器仓库
假定repositories作为Git目录,下面命令在该目录下新建一个git仓库
$ sudo mkdir /home/AdminName/repositories
$ sudo git init --bare /home/AdminName/repositories/reponame.git
五、修改Git目录和Git仓库到指定权限,否则客户机无法通过ssh协议访问Git服务器上的文件
$ sudo chmod 700 /home/AdminName/repositories
$ sudo chmod 777 -R /home/AdminName/repositories/reponame.git
六、安全设置
出于安全考虑,git用户不允许登录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,因为我们为git用户指定的git-shell每次一登录就自动退出。
七、公钥管理
如果团队很小,把每个允许访问的人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里(需自己创建)就可以了。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥,这个就不细说了。
客户机操作步骤如下:
$ git clone AdminName@ip:repositories/reponame.git
相关文章推荐
- linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数
- 【学习笔记】ubuntu12.04安装与配置gitolite搭建git服务器
- Redis学习笔记(二)— 在linux下搭建redis服务器
- Git学习笔记(10)——搭建Git服务器
- linux学习笔记——DNS服务器的学习和搭建
- LINUX学习总结第6篇:搭建FTP服务器
- openfire+spark+jwchat+服务器日志输出 环境搭建(学习笔记)
- 在Linux上用Apache搭建Git服务器
- 【linux学习笔记】lamp环境的搭建
- 在linux搭建git服务器
- 在linux搭建git服务器
- ubuntu下web服务器环境搭建学习笔记
- NuGet学习笔记(3) 搭建属于自己的NuGet服务器
- 《网络编程》 实验环境搭建(linux 环境 学习笔记)
- linux 编程学习笔记(1)搭建c(c++)开发环境
- arm学习笔记005之Linux平台下TFTP服务器构建
- 我的LINUX学习之路之二十一之web服务器简单搭建
- Linux学习笔记之服务器篇(一)
- linux 学习 linux上搭建dhcp服务器
- linux学习笔记3--tomcat服务器的配置