PHP Laravel NGINX html css Bootstrap Python Symfony Apache Windows linux jquery Django ASP vanilla Slim vagrant docker Homestead MySQL Redis Git SVN ssh Root vim PhpStorm Pycharm sass less PHP Laravel android html css Vue Angular React NGINX html css Javascript

Git Server - 限制Git用户使用SSH登陆操作

原创

原创不易 ~ 转载请注明出处哦

在前面的文章中,我给大家介绍了如何自己架设一个git服务器并建立一个名为git的用户来进行所有的git操作:

Linux环境下如何搭建Git服务器(Git Server)

但是我们会发现,git用户是可以通过ssh进行远程连接我们的服务器的,这将有一定的安全隐患。
那么在这篇文章中,我们会介绍如何限制git用户,禁止其使用ssh登陆进行操作。

具体办法就是将git用户的shell换成git-shell这个工具:

 # see if `git-shell` is already in there (检查`git-shell`是否已经在shells文件中)    
$ cat /etc/shells      
   
 # make sure git-shell is installed on your system (如果没有,确定git-shell已经在你的系统里安装)    
$ which git-shell      
   
# and add the path to git-shell from last command (将上一条命令返回的路径添加进shells)    
$ sudo vim /etc/shells

我们看到,首先我们需要找到git-shell的安装位置,如果没有被添加在/etc/shells中,我们需要手动将其添加进去(通常git-shell路径为/usr/bin/git-shell)。

接下来,我们就可以把默认的shell替换成git-shell了:

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

现在,git用户就只能进行pushpull操作,而不能用ssh来连接服务器了:

$ ssh git@gitserver    
fatal: Interactive git shell is not enabled.    
hint: ~/git-shell-commands should exist and have read and execute access.    
Connection to gitserver closed.

正在加载验证码......
请先完成验证