Home Linux 搭建 git 服务器
Post
Cancel

Linux 搭建 git 服务器

1. 安装 git

各个发行版都可以使用自带的包管理工具直接下载,下面以 apt 为例

1
2
sudo apt update
sudo apt install git -y

2. 添加 git 用户

1
sudo adduser git

3. 给 git 用户创建 .ssh 目录并设置相应的权限

1
2
3
4
5
6
su git                            # 切换用户
cd                                # 切换到 git 用户目录
mkdir .ssh                        # 创建 .ssh 目录
chmod 700 .ssh                    # 修改权限
touch .ssh/authorized_keys        # 创建 authorized_keys
chmod 600 .ssh/authorized_keys    # 修改权限

之后将需要使用 git 服务的用户的 public key 拷贝到上述 authorized_keys 文件中

1
cat id_rsa.pub >> ~/.ssh/authorized_keys

4. 创建 git 仓库

1
2
3
4
5
6
cd /srv
sudo mkdir git            # 创建 git 目录
sudo chown git:git git    # 修改目录属主
mkdir project.git         # 创建 git 仓库
cd project.git
git init --bare           # 初始化 git 仓库

git 服务搭建完成,用户可以关联该仓库进行克隆、提交、拉取等操作。关联仓库命令

1
git remote add origin git@gitserver:/srv/git/project.git

5. 禁止使用 ssh 通过 git 账号登录服务器

查看 /etc/shells 文件里是否有 git-shell

1
cat /etc/shells

如果已经存在,不需要进行下面的操作,如果不存在执行

1
which git-shell

将上面的输出保存到 /etc/shells

1
sudo -e /etc/shells

最后执行

1
sudo chsh git -s $(which git-shell)

禁用端口转发登录,在 .ssh/authorized_keys 文件每个 ssh-rsa 之前添加 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty , 例如:

1
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEwENNMomTboYI+LJieaAY16qiXiH3wuvENhBG...
This post is licensed under CC BY 4.0 by the author.