如何只允許指定ip的機器透過ssh登入?

如何只允許指定ip的機器透過ssh登入?

我只想允許具有允許 IP 的計算機透過 ssh 登入我的系統。

例如userA只能使用ipxx.xx.xx.xxyy.yy.yy.yy透過ssh登錄,其他ip都不能登入userA。且userB只能使用ipzz.zz.zz.zz透過ssh登錄,除了 zz.zz.zz.zz可以用其他ip登入之外,其他任何ip都不能登入userB

我應該如何設定 Linux 來實現這一目標?

答案1

添加/etc/ssh/sshd_config以下內容:

AllowUsers [email protected] [email protected] userA
AllowUsers [email protected] userB

然後重新啟動 SSH 守護程式。

您可以使用通配符,如中所述圖案的部分ssh_config 手冊

答案2

您可以透過 iptables 來做到這一點。

從位址 1.2.3.4 到 SSH(連接埠 22)的所有連線:

iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT

拒絕所有其他 SSH 連線:

iptables -A INPUT -p tcp --dport 22 -j DROP

答案3

一種方法(如果您使用 PAM 進行身份驗證)是將指定pam_rhosts為.這允許每個使用者在自己的文件中指定允許他們連接的位置。required/etc/pam.d/ssh.rhosts

請注意,檔案中的驗證模組pam.d不會用於 pubkey 登入(例如,我必須auth required pam_deny.so防止在我的電腦上進行密碼登入)。仍使用其他模組(accountsession)。

相關內容