Ssh
是否有規範的方法來限制對 Unix 中某些 IP 地址的 ssh 訪問?
我檢查了與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 下面提出的解決方案除了 format 之外有效
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]
Match
如果您希望允許從單個主機登錄,而不是使用,則以下對我有用(在 中sshd_config
):AllowUsers *@192.168.0.4
它只允許使用者使用目標上的任何登錄名從 192.168.0.4 登錄。您可以根據需要替換
*
為特定的登錄名,並指定多個用空格分隔的模式;例如:AllowUsers user1@192.168.0.4 user2@192.168.0.4