为什么即使我明确禁用 X11 转发,它仍然被允许?

为什么即使我明确禁用 X11 转发,它仍然被允许?

我一直在强化 SSH,但由于某些奇怪的原因,它X11Forwarding仍然保持启用状态。我尝试添加X11UseForwarding no,但运行sudo sshd -T | grep x11导致以下错误,所以我将其删除:

/etc/ssh/sshd_config: line 134: Bad configuration option: X11UseForwarding
/etc/ssh/sshd_config: terminating, 1 bad configuration options

输出sudo sshd -T | grep x11

x11displayoffset 10
x11maxdisplays 1000
x11forwarding yes
x11uselocalhost yes

我的内容/etc/ssh/sshd_config

#   $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

# To modify the system-wide sshd configuration, create a  *.conf  file under
#  /etc/ssh/sshd_config.d/  which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

LoginGraceTime 20
PermitRootLogin no
#StrictModes yes
MaxAuthTries 3
MaxSessions 1

#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no

# Change to no to disable s/key passwords
#KbdInteractiveAuthentication yes

# Kerberos options
KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes

# GSSAPI options
GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Fedora and may cause several
# problems.
#UsePAM no

AllowAgentForwarding no
AllowTcpForwarding no
#GatewayPorts no
X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
PermitUserEnvironment no
#Compression delayed
ClientAliveInterval 300
ClientAliveCountMax 1
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem   sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#   X11Forwarding no
#   AllowTcpForwarding no
#   PermitTTY no
#   ForceCommand cvs server

# custom ssh settings
AllowUsers [REDACTED]

答案1

配置文件中确实有,但在它之前X11Forwarding no也有。Include /etc/ssh/sshd_config.d/*.conf对于每个关键字(例如X11Forwarding第一的使用获得的值(man 5 sshd_config明确说明这一点)。这意味着如果X11Forwarding yes从某个.conf文件中/etc/ssh/sshd_config.d/应用,则该值将为yes.

检查/etc/ssh/sshd_config.d/*.conf文件。有用的命令:

grep -il X11Forwarding /etc/ssh/sshd_config.d/*.conf

如果您想X11Forwarding no获得优先权,请将其放在主配置文件的早期,当然是在该Include行之前。

答案2

正如贾尔斯所说,您似乎对配置指令感到困惑。 'sshd -T` 的输出显示第 134 行有错误 - 但您只向我们展示了配置的前 133 行。相反,您的 grep 语句表示您 grep 的文件中不存在“错误配置选项:X11UseForwarding”。

我认为您需要返回并准确确定配置文件中的内容,并对 sshd 服务进行显式重新启动,以确保它使用文件中的当前配置运行。

相关内容