我检查了与OS X 和其他系统man
相关的页面,并尝试使用和文件ssh
hosts.allow
hosts.deny
这个帖子,并且sshd_config
无济于事。
$ cat /etc/hosts.allow
sshd: 192.168.0.4/255.255.255.0
$ cat /etc/hosts.deny
sshd: ALL
我sshd_config
尝试使用Match
但没有成功(我不记得确切的配置)。
我的系统是 OS X 10.8.5,我希望sshd
允许来自本地 IP 192.168.0.4/24 或其本地名称的访问,并拒绝包括网关 192.168.0.1 在内的所有其他主机的访问。
更新Stephen Kitt 下面提出的解决方案除了格式之外都有效AllowUsers name/pattern@hostname
。这会记录以下内容
sshd[31723]: debug1: attempt 6 failures 5 [preauth]
sshd[31723]: debug1: keyboard-interactive devs [preauth]
sshd[31723]: debug1: auth2_challenge: user=test devs= [preauth]
sshd[31723]: debug1: kbdint_alloc: devices 'pam' [preauth]
sshd[31723]: debug1: auth2_challenge_start: trying authentication method 'pam' [preauth]
sshd[31723]: Postponed keyboard-interactive for invalid user test from 192.168.0.4 port 55680 ssh2 [preauth]
sshd[31723]: error: PAM: authentication error for illegal user test from 192.168.0.4 via 192.168.0.5
sshd[31723]: Failed keyboard-interactive/pam for invalid user test from 192.168.0.4 port 55680 ssh2
sshd[31723]: Disconnecting: Too many authentication failures for test [preauth]
sshd[31723]: debug1: do_cleanup [preauth]
答案1
Match
如果您希望允许从单个主机登录,而不是使用,则以下内容对我有用(在sshd_config
):
AllowUsers *@192.168.0.4
它仅允许用户使用目标上的任何登录名从 192.168.0.4 登录。如果您愿意,您可以替换*
为特定的登录名,并指定用空格分隔的多个模式;例如:
AllowUsers [email protected] [email protected]