我只想允許具有允許 IP 的計算機透過 ssh 登入我的系統。
例如userA
只能使用ipxx.xx.xx.xx
或yy.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
防止在我的電腦上進行密碼登入)。仍使用其他模組(account
等session
)。