Ssh

是否有規範的方法來限制對 Unix 中某些 IP 地址的 ssh 訪問?

  • May 3, 2015

我檢查了與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

引用自:https://unix.stackexchange.com/questions/199998