考虑到 openssh (1:7.2p2-4ubuntu2.6
在 ubuntu 16.04 上)安装,我发现自己有多个我想要合作的组。我尝试设置组的方式实际上是这样的:
- 转发端口
- 仅转发到本地端口
- 上面,加上几个远程端口
- 转发“任何”端口
- 使用权
- 仅 SFTP(例如
ForceCommand internal-sftp
),chrooted - 仅 SFTP,未 chroot
- 完整的 shell 访问
- 仅 SFTP(例如
我将使用分别命名为pf1
、pf2
、pf3
和acc1
、acc2
、的组acc3
。
手册页的措辞方式
如果某个关键字出现在多个满足条件的 Match 块中,则仅应用该关键字的第一个实例。
听起来唯一有效的方法就是
Match Group pf1,acc1
PermitOpen localhost:1234 localhost:2345
ForceCommand internal-sftp
ChrootDirectory /somepath
Match Group pf1,acc2
PermitOpen localhost:1234 localhost:2345
ForceCommand internal-sftp
Match Group pf1,acc3
PermitOpen localhost:1234 localhost:2345
Match Group pf2,acc1
PermitOpen localhost:1234 localhost:2345 remote1:1234 remote2:2345
ForceCommand internal-sftp
ChrootDirectory /somepath
Match Group pf2,acc2
PermitOpen localhost:1234 localhost:2345 remote1:1234 remote2:2345
ForceCommand internal-sftp
Match Group pf1,acc3
PermitOpen localhost:1234 localhost:2345 remote1:1234 remote2:2345
Match Group pf3,acc1
#PermitOpen any
ForceCommand internal-sftp
ChrootDirectory /somepath
Match Group pf2,acc2
#PermitOpen any
ForceCommand internal-sftp
Match Group pf1,acc3
#PermitOpen any
我可以通过默认为一组等来节省几行PermitOpen
,但这并不能消除迭代具有不同类型限制的两组组的每种可能组合的需要。如有其他特殊情况(这三个用户有一个特殊需要),那么我需要将它们不同组的数量相乘......
我知道配置似乎不允许这样做,但我是否遗漏了一些东西,或者它真的是字面的和枚举的吗?
最终我只想使用一些可以让我做更多附加方法的东西:
Match Group pf1
PermitOpen localhost:1234 localhost:2345
Match Group pf2
PermitOpen localhost:1234 localhost:2345 remote1:1234 remote2:2345
Match Group pf3
#PermitOpen any
Match Group acc1
ForceCommand internal-sftp
ChrootDirectory /somepath
Match Group acc2
ForceCommand internal-sftp
Match Group acc3
# not needed
为了可读性以及易于配置。
背景搜索:
- 这邮件列表在过去的几年里没有出现太多,我可能需要扩展我的搜索参数(这只是一组搜索)
- 不太相关:如何从 SSHD 中的“匹配组”中排除?
- 我相信dropbear不支持这种级别的精确控制