我只想允许具有允许 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
)。