我想配置服务器,以便只有一个用户(git
)能够从任何 IP 地址(使用密钥)登录,其他用户只能从指定的 IP 登录。
目前我的配置允许任何用户从一个指定的 IP 登录。
以下是我现在所拥有的:
/etc/ssh/sshd_config:
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
# AllowUsers
# not configured
/etc/hosts.allow:
# my workplace IP
sshd: 191.225.37.xyz
# my trusted server
ALL: my.private.com
/etc/hosts.deny:
# bunch of addresses added by protection services
sshd: x.y.z.v
UFW 已禁用。
如何配置它,以便任何用户都可以从这个指定的 IP 登录(原样),但git
用户能够从任何 IP 通过 ssh 登录?
答案1
你可能应该用match
你的sshd_config
而不是尝试使用 tcp 包装器 hosts.allow(这是官方 sshd 中已弃用的函数)。使用谷歌搜索可以找到许多示例。这是一个未经测试的示例,我期望它可能与您想要的类似。请花一些时间自己阅读手册页和其他谷歌搜索结果。
PasswordAuthentication no
# git from anywhere with password auth
Match User git
PasswordAuthentication yes
# anyone not git from a specific network with password auth
Match User !git Address 192.168.0.0/16
PasswordAuthentication yes