因此,我在/etc/ sshd _config中设置了“ssh”,并重新启动了sshd服务,但是根用户仍然可以通过ssh登录。
进一步研究表明,运行时配置与sshd_config文件不同:
[root@CEBECOM-Hq5AT03 ~]# grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
[root@CEBECOM-Hq5AT03 ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@CEBECOM-Hq5AT03 ~]# sshd -T |grep -i permitrootlogin
permitrootlogin yes我也试着重新启动机器,但是我仍然可以用root登录.
有什么想法吗?
编辑:我有更多的信息。
我发现我必须将PermitRootLogin放在Match指令之前,这样它才能正常工作:
# here it works
PermitRootLogin no
Match Group sFTP
ChrootDirectory /sftp/salsftp
ForceCommand internal-sftp
AllowTcpForwarding no
# here it doesn't work
# PermitRootlogin no我找不出为什么它会这样。
发布于 2017-07-03 09:12:12
啊,好的,我知道了。来自sshd_config手册页:
Match引入一个条件块。如果匹配线上的所有条件都满足,则下面一行的关键字将覆盖配置文件的全局部分中设置的关键字,,直到另一条匹配行或文件的末尾。
因此,如果我将PermitRootlogin放在匹配之后,这将被视为匹配配置的一部分。由于根不在sFTP组上,所以忽略了PermitRootLogin指令。
https://stackoverflow.com/questions/44881185
复制相似问题