引言
我在创建git
私有化部署的时候,尝试创建一个名叫git
的用户
我按照常规操作进行指定登录脚本,就是useradd -s /usr/bin/git-shell git
这里指定的脚本是不存在的
原本打算的是不允许登录的用户,但是可以用来做git
的拉取,但是发现拉取(clone
)失败了
然后用usermod -s /usr/bin/bash git
指定修改用户登录脚本,并且设置密码。
我排查过selinux
,排查过防火墙fireware
,但是都没有解决!
甚至我想到了/etc/ssh/sshd_config
当中,允许密码登录和秘钥登录的开关。
甚至我想到了是不是秘钥文件有错误,或者家目录里有问题
结果是这么个坑爹问题。
原因
实际原因其实很简单,因为我的sshd_config
文件里有一句话:
/etc/ssh/sshd_config
文件最后加入AllowUsers
代码块
AllowUsers root demo1
这里用了AllowUsers
语句,指定了只允许root
用户和demo1
用户访问,我的git
访问用户自然就无法访问了。
即使是指定非登录脚本,也不行,毕竟得首先连接进去之后,才能执行登录脚本。
所以很简单,把git
用户加进去这里就行,当然,也可以把这条语句删除掉。
然后需要重启sshd
服务
比如
sudo systemctl restart sshd
或者
sudo service sshd restart
这样配置就生效了。