引言

我在创建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

这样配置就生效了。


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2025 年 03 月 08 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~