AllowGroups和root @ IP

Chi*_*kus 2 ssh openssh sshd ssh-keys

我有几台服务器使用以下sshd配置.

# Authentication:
PermitRootLogin no
AllowGroups ssh
PubkeyAuthentication yes
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

这意味着组"ssh"中的每个用户都可以登录,但只能使用pubkey.不允许登录root.

但是root必须有一个例外:我的$ ip备份服务器必须以root身份登录.

我试过了:

AllowUsers root@$ip
AllowGroups ssh
Run Code Online (Sandbox Code Playgroud)

但AllowUsers会覆盖AllowGroups语句.所以只有来自$ ip的root才能登录.

Match User root, Address $ip
    PermitRootLogin {yes|without-password}
    AllowUsers root
Run Code Online (Sandbox Code Playgroud)

Match Address $ip
    PermitRootLogin {yes|without-password}
    AllowUsers *
Run Code Online (Sandbox Code Playgroud)

两者都被完全忽略了.组"ssh"中的正常用户只能登录.

这是一个简单的场景,用户登录限制为pubkey,root登录限制为pubkey和某些ip.怎么解决?

lar*_*sks 5

你没有发布你的整个sshd_config,所以重现这种情况有点困难,但这似乎有效:

# Main config prohibits all logins
PermitRootLogin no
AllowUsers root

# Permit root logins from a specific address
Match Address 192.168.1.20
  PermitRootLogin yes

# Allow logins to anyone in "ssh" group.
Match Group ssh
  AllowUsers *
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是

这将为您提供您想要的:

  • 只有该ssh组的成员才能登录.
  • root只能从authorized_keys文件中的特定IP地址登录 .