Linux系统搭建仅允许Git访问的服务器
一、安装Git[1]
sudo apt install git-all
二、开一个git账户(可选)
sudo adduser git
sudo adduser git --uid 1001 --gid 1001
sudo usermod -aG git git
UID和GID可以查看/etc/passwd和/etc/group。
三、限制git账户只能使用Git服务
1. 将登录启动shell设为git-shell
打开/etc/passwd,将登录启动shell改成git-shell[2]
1 | git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell |
或者运行[3]
chsh -s /usr/bin/git-shell
此时通过ssh登录git账户便会报错。
2. 设置禁止运行交互指令
如果存在~/git-shell-commands/no-interactive-login,则登录后会执行此脚本然后立刻退出[4],不再报错。
no-interactive-login!/bin/sh printf '\n' printf "Hi $USER! You've successfully authenticated, but you are \033[91mnot allowed \033[0mto use interactive shell access.\n" printf "\033[93mUse git services to login only.\033[0m\n" printf '\n' exit 128
其他用法详见参考资料[4]。
参考
- 1.5 Getting Started - Installing Git;
- 搭建Git服务器 - 廖雪峰的官方网站;
- Git - git-shell Documentation §EXAMPLES;
- Git - git-shell Documentation §INTERACTIVE USE;