允许本地网络上的 SSH 密码登录

允许本地网络上的 SSH 密码登录

我有一台运行 Fedora 16 的家庭服务器,我希望能够通过 SSH 进行远程访问。对于具有 sudo 访问权限的用户,他们只能使用密钥从 WAN 进行连接,但我想允许他们使用密码从本地网络进行连接。

这是我的 sshd_config:

#Logging
SyslogFacility AUTHPRIV

#Allow the two types of ssh groups
AllowGroups ssh_key_users ssh_pass_users
PermitRootLogin no

#Accept environment variables - these come from the fedora default config
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

#Other options
X11Forwarding yes
GSSAPICleanupCredentials yes
#Set up sftp subsytem
Subsystem       sftp    /usr/libexec/openssh/sftp-server

#Just as a default, we'll change it per network and group
PasswordAuthentication no

#Re-enable password access for the local network
Match Address 192.168.1.0/24 Group ssh_key_users
PasswordAuthentication yes

#Settings for users which can login by password (non-sudoers)
Match Group ssh_pass_users
PasswordAuthentication yes
ChrootDirectory %h

有趣的是,当我运行sshd -d -p 4000它以将其置于调试模式并进行测试时,它完美地工作,但是当我通过 systemctl 运行 sshd 时尝试使用密码登录失败。

由于配置这台机器时出现过大多数问题,我认为 SELinux 是罪魁祸首。以下是来自 audit.log 的错误消息

type=USER_AUTH msg=audit(1345320824.824:123275): 
pid=0 uid=0 auid=4294967295 ses=4294967295 
subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 
msg='op=password acct="chockey" exe="/usr/sbin/sshd" 
hostname=? addr=192.168.1.201 terminal=ssh res=failed'

如果我暂时关闭 SELinux,它确实会起作用。如果我对此消息使用 audit2why,它不会给出任何输出。如果我尝试对此消息使用 audit2allow,它会输出 3 个换行符,但没有其他输出。也许我使用错了,但这是我所做的:

$ tail -n 1 /var/log/audit/audit.log > error.txt
$ audit2why -i error.txt
$ audit2allow -i error.txt


$ 

有人遇到过这种情况吗? 是否值得保留 SELinux?

相关内容