git 服务器搭建
使用centos服务器搭建git服务器。其实就是想要弄一个自己的私有仓库啦等于。网上看了一下教程,其实不难,不过自己也是遇到了坑就是因为自己之前为了安全配置改了ssh的端口号。后面一度不知道如何处理,最后发现解决起来也不难。
安装git
sudo yum install git
添加git用户
为什么要创建一个git用户呢,是我们希望协作的每个人都可以在仓库里面读写确又不想创建一堆用户在主机上面,所以我们把每个需要写权限的人的SSH公钥加入到git用户的~/.ssh/authorized_keys
文件。这样大家都可以访问仓库读写,却又不会让我们创建一堆用户太复杂的操作。
sudo adduser gituser
添加用户sudo passwd gituser
设置密码su gituser
切换到gituser用户cd gituser/
进入工作目录mkdir .ssh && chmod 700 .ssh
添加.ssh
文件夹并修改其权限为700touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
新建authorized_keys
文件然后修改权限为600- 之后将我们的每个客户机的公钥放进
authorized_keys
这个文件,每行放一个。
客户机公钥就是 ssh-keygen -t rsa -C "user@mail.com"
命令创建的 id_rsa.pub
文件里面的内容
创建仓库
先进入到gituser的文件目录然后创建一个裸仓库
mkdir srv
创建 srv
目录
cd srv
进入目录
mkdir test.git
新建一个 .git
结尾的目录来存放仓库
git init --bare test.git
初始化一个裸仓库
修改git用户的访问
切换到root用户
编辑/etc/passwd
将gituser:x:1001:1001::/home/git:/bin/bash
改为gituser:x:1001:1001::/home/gitadmin:/usr/bin/git-shell
使得gituser只能使用git功能
克隆仓库
$ git clone ssh://gituser@server:port/~/srv/test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
由于使用了非22号端口,因为一些安全上面的考虑,所以这里我们要标出端口号不然的话默认使用22端口的会报错,当然也可以编辑.ssh/config里面的配置,但是那属于全局配置就不太适合我们继续对其他的仓库的访问。
测试一下
总结
大佬们说这个很简单,但是我还是折腾了半小时,感觉还是对Linux的使用不够熟练,总之还是要继续学习。写这个下来,也是提醒之后的自己不要忘记,有时间就重温一下。