Article Outline
通常我们将代码托管到 Github 上非常方便,但是有时候我们不想把代码公开,也不想花费私有仓库的托管费用,这时候可以利用 Git 在自己的服务器上搭建自己的 Git 托管服务。
<!--more-->
创建 git 用户:
sudo adduser git
创建 .ssh 文件夹存储公钥:
cd ~ && mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
收集使用者的公钥,用来获取服务器和客户端的通讯许可。通常保存在 ~/.ssh/ 目录下,如果 ~/.ssh 目录下没有本机公钥,就需要创建一个:
ssh-keygen
创建好的公钥一般名为 id_rsa.pub,将这个公钥文件交给 git 服务器的管理员,管理员复制公钥到创建好的 authorized_keys 文件末尾,假设管理员将使用者 John 的公钥文件存储在 /tmp/ 目录下,命名为 id_rsa.john.pub :
cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
管理员在目录 example 创建空仓库:
sudo git init --bare example.git
出于安全,禁用 shell 登录。修改 /etc/passwd 文件。找到类似行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
使用者克隆下来就可以使用了:
git clone git@server:/test/test.git
如果出现权限错误,请让管理员把 test.git 目录的权限用户改为 git。