Loading... ## 引言 我在创建`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`服务 比如 ```shell sudo systemctl restart sshd ``` 或者 ```shell sudo service sshd restart ``` 这样配置就生效了。 欢迎关注拓行公众号,分享各种技术博客文章拓行——奋勇进取,开拓未来,砥砺前行 最后修改:2025 年 01 月 29 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~