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.怎么解决?
你没有发布你的整个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)
另一种解决方案是
在您的内容中有以下内容sshd_config:
AllowGroups ssh
PermitRootLogin without-password
Run Code Online (Sandbox Code Playgroud)成为root该ssh组的成员.
usermod -a -G ssh root
Run Code Online (Sandbox Code Playgroud)/root/.ssh/authorized_keys使用受限制的源地址添加公钥,如下所示:
from=192.168.1.20 ssh-rsa ...
Run Code Online (Sandbox Code Playgroud)这将为您提供您想要的:
ssh组的成员才能登录.root只能从authorized_keys文件中的特定IP地址登录
.| 归档时间: |
|
| 查看次数: |
7276 次 |
| 最近记录: |