VirtualBox中CentOS配置git服务器

前言

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

配置SSH

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

安装SSH

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

配置免密登录

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

ssh-keygen -t rsa -C "gitopen@gmail.com"

注意输入自己的邮箱

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

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

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

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

ip addr

如图所示:
CentOS ip地址

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

ssh root@xxx.xxx.xxx.xxx -p 22

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

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

//创建.ssh文件夹:
mkdir .ssh
//创建authorized_keys文件:
touch .ssh/authorized_keys
//修改authorized_keys的权限:
chmod 600 .ssh/authorized_keys

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

cat .ssh/id_rsa.pub

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

vi .ssh/authorized_keys

9.配置完毕了。

客户端(Mac)配置CentOS别名

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


CentOS NAT网络

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


CentOS 端口转发

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

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

vi .ssh/config

输入以下:

Host cent
    HostName 127.0.0.1
    User root
    Port 4444

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

很方便的连接CentOS

ssh cent

配置和安装git服务器

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

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

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

2.卸载低版本Git

yum remove git

3.创建git目录并进入

�cd /usr/local
mkdir git
cd git

4.下载最新版Git 2.13.2

wget https://github.com/git/git/archive/v2.13.2.tar.gz

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

5.解压到git目录中

tar -xzvf v2.13.2.tar.gz

6.安装v2.13.2版Git

cd git-2.13.2
make prefix=/usr/local/git all
make prefix=/usr/local/git install

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

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

vi /etc/profile

加入

export PATH="/usr/local/git/bin:$PATH" 

使�配置立即生效

source /etc/profile

8.查看�git版本

git --version

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

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.添加用户组合用户�,并设置密码

groupadd git
useradd git -g git
passwd git

切换到git账户

su -git

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

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

修改目录和文件的权限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

初始化Git仓库

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

cd /home/git
mkdir gitrepos
cd gitrepos

2.初始化第一个test仓库

git init --bare test.git

本地客户端克隆仓库

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

git clone git@cent:/gitrepos/test.git

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

禁止Shell登录

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

切换到root账户:

su

编辑/etc/passwd文件:

vi /etc/passwd

将这一行:

git:x:502:502::/home/git:/bin/bash

替换为:

git:x:502:502::/home/git:/usr/local/git/bin/git-shell

结语

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


关于我

  • 微博:@安卓猴
  • Twitter:@GitOPEN
  • 微信公众号:Android奇想录(android_amazing)
扫描二维码关注公众号
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • Git的基本工作流程 在工作目录中修改某些文件。 对修改后的文件进行快照,然后保存到暂存区域。 提交更新,将保存在...
    夜_雪阅读 1,311评论 2 5
  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 3,394评论 4 36
  • 我大学学的是酒店管理,以前常听行内人说,要做酒店,不会喝酒可是不行的呢!把我这个从小滴酒不沾的乖乖女吓得不轻。 我...
    原来是美双呀阅读 393评论 0 1
  • 小时候一听到巷口有拨浪鼓的声音,就会忙不可待的奔出来,这于儿时的我实在是一种奇妙的音乐。 这是货郎来了。奶奶会让我...
    浅浅水可阅读 476评论 3 3