前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VirtualBox中CentOS配置git服务器

VirtualBox中CentOS配置git服务器

作者头像
GitOPEN
发布2019-01-29 10:08:02
9380
发布2019-01-29 10:08:02
举报

前言

在管理自己的代码的时候,我一直使用github。有的时候,私有项目不想公开,如果还要放到GitHub上,那就必须要花钱。解决这个问题的方法其实也很简单:在自己电脑上用虚拟机(VirtualBox)跑一个服务器(CentOS),配置好ssh和git server。正所谓:史上距离你最近的服务器。

配置SSH

SSH是程序员链接服务器的居家必备之花露水啊!因此在VirtualBox中安装好CentOS(最小化安装)后,首要工作就是配置它的SSH。

安装SSH

  1. 更新系统: yum update
  2. 安装openssh-server: yum install -y openssl openssh-server
  3. 启动SSH服务: systemctl start sshd.service
  4. 设置开机启动ssh服务: systemctl enable sshd.service

配置免密登录

1.在客户端系统(我的是Mac)终端中生成密钥:

代码语言:javascript
复制
ssh-keygen -t rsa -C "gitopen@gmail.com"

注意输入自己的邮箱

2.会提示输入密码,但也可以留空(至少我是留空,输入密码太麻烦)。

3.完成后会在.ssh目录下生成id_rsaid_rsa.pub两个密钥文件。

注意保存这两个文件,哪怕你换了电脑,重做了系统,也要记得备份。

4.查看VirtualBox中CentOS的ip地址: 运行CentOS,root用户登录后输入:

代码语言:javascript
复制
ip addr

如图所示:

CentOS ip地址
CentOS ip地址

5.在客户端中用ssh连接CentOS:

代码语言:javascript
复制
ssh root@xxx.xxx.xxx.xxx -p 22

xxx.xxx.xxx.xxx是CentOS的ip地址,此时还需要输入CentOS的root账户密码。此时之所用SSH登录,是为了方便拷贝密钥到authorized_keys。

6.在VirtualBox中的CentOS服务器中进行配置:

代码语言:javascript
复制
//创建.ssh文件夹:
mkdir .ssh
//创建authorized_keys文件:
touch .ssh/authorized_keys
//修改authorized_keys的权限:
chmod 600 .ssh/authorized_keys

7.在客户端(Mac)中查看id_rsa.pub,并复制其中的密钥。

代码语言:javascript
复制
cat .ssh/id_rsa.pub

8.在CentOS中打开authorized_keys,将刚才复制的密钥粘贴进去。

代码语言:javascript
复制
vi .ssh/authorized_keys

9.配置完毕了。

客户端(Mac)配置CentOS别名

1.为VirtualBox中CentOS的网络设置端口转发 设置网络类型为NAT,如图所示:

CentOS NAT网络
CentOS NAT网络

设置端口转发,如图所示:

CentOS 端口转发
CentOS 端口转发

以上操作是为了在客户端(Mac)中设置别名登录的时候,将ip地址写为127.0.0.1,避免每次启动CentOS自动获取ip的变化,需要修改太麻烦。

2.客户端(Mac)配置CentOS的别名

代码语言:javascript
复制
vi .ssh/config

输入以下:

代码语言:javascript
复制
Host cent
	HostName 127.0.0.1
	User root
	Port 4444

cent为别名,可以自由设置。

很方便的连接CentOS

代码语言:javascript
复制
ssh cent

配置和安装git服务器

所有操作可在客户机(Mac)上用SSH连接CentOS进行

1.CentOS安装最新git,依赖库安装

代码语言:javascript
复制
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

2.卸载低版本Git

代码语言:javascript
复制
yum remove git

3.创建git目录并进入

代码语言:javascript
复制
cd /usr/local
mkdir git
cd git

4.下载最新版Git 2.13.2

代码语言:javascript
复制
wget https://github.com/git/git/archive/v2.13.2.tar.gz

截至目前最新版是2.13.2,可以到https://github.com/git/git/releases 复制最新版链接进行下载。

5.解压到git目录中

代码语言:javascript
复制
tar -xzvf v2.13.2.tar.gz

6.安装v2.13.2版Git

代码语言:javascript
复制
cd git-2.13.2
make prefix=/usr/local/git all
make prefix=/usr/local/git install

编译过程稍微较长,耐心等待

7.添加到环境变量中 打开/etc/profile

代码语言:javascript
复制
vi /etc/profile

加入

代码语言:javascript
复制
export PATH="/usr/local/git/bin:$PATH"

使配置立即生效

代码语言:javascript
复制
source /etc/profile

8.查看git版本

代码语言:javascript
复制
git --version

9.将最新版git设置为系统默认,避免克隆时出错

代码语言:javascript
复制
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

10.最新版v2.13.2 Git安装成功

创建git用户组和添加用户

1.添加用户组合用户,并设置密码

代码语言:javascript
复制
groupadd git
useradd git -g git
passwd git

切换到git账户

代码语言:javascript
复制
su -git

2.证书登录,免密码使用git

创建.ssh目录和.ssh/authorized_keys文件,将客户端(Mac)的id_rsa.pub中的密钥添加到authorized_keys文件中

修改目录和文件的权限

代码语言:javascript
复制
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

初始化Git仓库

1.我的所有仓库都放在gitrepos目录下,因此我创建了这个目录

代码语言:javascript
复制
cd /home/git
mkdir gitrepos
cd gitrepos

2.初始化第一个test仓库

代码语言:javascript
复制
git init --bare test.git

本地客户端克隆仓库

在客户端(Mac)上克隆CentOS上的test.git库

代码语言:javascript
复制
git clone git@cent:/gitrepos/test.git

cent是章节2.3中设置的CentOS的SSH连接别名,也可以换成相应的ip地址

禁止Shell登录

如果你是在远程的VPS服务器上配置git服务器,那么为了安全考虑,可以禁止Shell登录;如果像本文的初衷那样,是为了构建史上距离你最近的服务器,那么这一步就可以不做。

切换到root账户:

代码语言:javascript
复制
su

编辑/etc/passwd文件:

代码语言:javascript
复制
vi /etc/passwd

将这一行:

代码语言:javascript
复制
git:x:502:502::/home/git:/bin/bash

替换为:

代码语言:javascript
复制
git:x:502:502::/home/git:/usr/local/git/bin/git-shell

结语

通过用Virtualbox在本机上构建CentOS,方便于开发人员进行测试;通过在CentOS上搭建自己的Git服务器,可以将自己独立开发的代码很好的管理与备份。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/07/10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 配置SSH
    • 安装SSH
      • 配置免密登录
        • 客户端(Mac)配置CentOS别名
          • 很方便的连接CentOS
          • 配置和安装git服务器
          • 创建git用户组和添加用户
          • 初始化Git仓库
          • 本地客户端克隆仓库
          • 禁止Shell登录
            • 结语
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档