首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSH AuthorizedPrincipalsFile允许任何用户

OpenSSH AuthorizedPrincipalsFile允许任何用户
EN

Security用户
提问于 2021-08-12 09:45:02
回答 1查看 2.2K关注 0票数 1

我对下面的配置和随后的行为感到困惑。

/etc/ssh/sshd_config:

代码语言:javascript
复制
AuthorizedPrincipalsFile /etc/ssh/principals

/etc/ssh/主体:

代码语言:javascript
复制
all
host.example.com
dev

这允许我以任何用户的身份登录,使用具有一个或多个匹配主体的证书。

我在这里错过了什么?

我现在明白了,这是注定的:

代码语言:javascript
复制
AuthorizedPrincipalsFile /etc/ssh/principals/%u

但是我的(Mis)配置肯定不应该允许任何用户?

Ubuntu 18.04.5 LTS

OpenSSH_7.6p1 Ubuntu-4 ubuntu0.3,OpenSSL 1.0.2n 2017年12月7日

EN

回答 1

Security用户

回答已采纳

发布于 2021-09-13 16:17:38

这是故意的行为。基本上,如果您指定了一个静态的、非参数化的AuthorizedPrincipalFiles,那么对所有用户都使用相同的文件。如果您想要基于用户的控制,您必须使用%u的东西。

如果您查看AuthorizesPrincipalsCommand,在引擎盖下发生的事情会变得更清楚。它运行指定的命令,将用户作为参数传递。所述命令可以是任何内容,但应该将有效的主体字符串输出到stdout,然后sshd将继续使用该字符串作为主体文件。

现在想想

代码语言:javascript
复制
AuthorizedPrincipalsFile /etc/ssh/principals

在概念上与

代码语言:javascript
复制
AuthorizedPrincipalsCommand /bin/AuthorizedPrincipalsFile

其中,AuthorizedPrincipalsFile是一个丢弃用户参数并只返回静态字符串的程序:

代码语言:javascript
复制
#!/bin/bash
# /bin/AuthorizedPrincipalsFile

echo "I'm not using this: $1" >/dev/null

cat /etc/ssh/principals

因此,只要密钥证书中提到的主体(S)也在服务器静态/etc/ssh/principals中,密钥的所有者就可以作为每个用户登录。

见手册:https://man.openbsd.org/sshd_config#AuthorizedPrincipalsCommand

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/254193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档