我一直在强化 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 服务进行显式重新启动,以确保它使用文件中的当前配置运行。