1. 安装 git
各个发行版都可以使用自带的包管理工具直接下载,下面以 apt 为例
1
2
| sudo apt update
sudo apt install git -y
|
2. 添加 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
如果已经存在,不需要进行下面的操作,如果不存在执行
将上面的输出保存到 /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...
|