2017-07-03 328 views
0

所以我已经设置了“没有的PermitRootLogin”在/ etc/sshd_config中,我已经重新启动sshd服务,但root用户仍然可以通过SSH登录。的PermitRootLogin没有在sshd的,但sshd的-t显示的PermitRootLogin是

进一步的调查表明,运行时配置不同于sshd_config文件:

[[email protected] ~]# grep PermitRootLogin /etc/ssh/sshd_config 
PermitRootLogin no 
[[email protected] ~]# service sshd restart 
Redirecting to /bin/systemctl restart sshd.service 
[[email protected] ~]# sshd -T |grep -i permitrootlogin 
permitrootlogin yes 

我也试图重新启动机器,但我依然可以用root登录...

任何想法?

编辑:我有一些更多的信息。

我发现我必须把一个的PermitRootLogin匹配指令之前,以便它的工作:

# here it works 
PermitRootLogin no 
Match Group sFTP 
    ChrootDirectory /sftp/salsftp 
    ForceCommand internal-sftp 
    AllowTcpForwarding no 

# here it doesn't work 
# PermitRootlogin no 

我找不到一个原因它的行为是这样的。

回答

1

阿好,我知道了。从sshd_config手册页:

匹配引入一个条件块。如果所有的 匹配线满足该准则,在以下行的关键字 覆盖在配置文件中的全局部分设置, ,直到其他匹配行或文件的末尾

所以,如果我把PermitRootlogin比赛结束后,这将被视为匹配配置的一部分。由于根不是在SFTP组则PermitRootLogin指令被忽略。

+0

这是一件好事,阅读手册页。 – Jakuje

相关问题