虽然以前也搭过,但是重新搭建一次的时候还要重新从网络上查找资料;
最近想着别把租来的服务器荒了,自己搭个
Git
服务器放点东西上去,顺路记录一波搭建过程。
第一步
在服务器上安装 git
:
centos
:
sudo yum install git
ubuntu
:
sudo apt-get install git
第二步
创建 git
用户,用来运行git
服务
sudo adduser git
可以同时为git
用户修改密码
sudo passwd git
第三步
免密登录
通过证书的方式来通过ssh
使用git
功能,需要创建证书,并收集需要登录的用户的公钥文件(~/.ssh/id_rsa.pub
),导入到/home/git/.ssh/authorized_keys
文件内,一行一个;
公钥可以通过执行
ssh-keygen -t rsa -C "yourname@mail.com"
进行生成
修改authorized_keys
文件的权限
chmod 600 authorized_keys
这一步必须要做,不然验证的时候还是会需要让你输入密码,具体原因不知;
第四步
初始化git
仓库,找个地放用来放你的git
仓库,这里我选了/data/repositorys
这个路径;
git init --bare TestGit.git
git
创建一个裸仓库,裸仓库没有工作区,因为服务器上的git仓库纯粹为了共享,所有不能让用户直接登录到服务器上去改工作区,并且服务器的git
仓库通常以 .git
结尾。然后,修改owner
改为git
:
sudo chown -R git:git TestGit.git
第五步
禁用shell
登录:
处于安全的考虑,第二步创建的git用户不允许登录shell
,这可以通过编辑 /etc/passwd
文件完成。
git:x:1003:1003::/home/git:/bin/bash
改为:
git:x:1003:1003::/home/git:/usr/bin/git-shell
这样,git
用户可以正常通过ssh
使用git
,但无法登录shell
,因为我们为git用户指定的git-shell
每次一登录就自动退出。
第六步
验证,克隆远程仓库:
现在,可以通过git clone
命令克隆远程仓库了,在各自的电脑上运行:
git clone git@server:/data/repositorys/TestGit.git
如果服务器SSH
端口不是默认的22的话,可以这样:
git clone ssh://git@server:port/data/repositorys/TestGit.git
运行完成后,正常的情况下会出现以下提示:
Cloning into 'TestGit'...
warning: You appear to have cloned an empty repository.
参考

相关推荐
版权声明
- 本文链接: https://www.cayzlh.com/2018/11/10/ddd0bb47.html
- 版权声明: 文章内容仅用作学习和分享,如有雷同,纯属拷贝。
留言区