如何只允许指定ip的机器通过ssh登录?

如何只允许指定ip的机器通过ssh登录?

我只想允许具有允许 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防止在我的计算机上进行密码登录)。仍使用其他模块(accountsession)。

相关内容