我想使用空密码为服务帐户(我们称之为“serviceacct”)配置 OpenSSH 6.2p2,它执行以下操作:
本质上,这将为已知用户提供一种行为,而为匿名用户提供另一种行为。
在理想的世界中, sshd_config 中的这些设置会做我想要的:
PubkeyAuthentication yes
PasswordAuthentication yes
Match User serviceacct
PermitEmptyPasswords yes
ForceCommand /my/program
Run Code Online (Sandbox Code Playgroud)
但我遇到了几个问题:
ForceCommand /my/program
覆盖authorized_keys 文件中设置的强制命令。除了修改OpenSSH服务器之外,有没有办法解决这两个问题?我能想到的一个明显的解决方法是只使用两个服务帐户 - 一个用于仅使用公钥身份验证的已知用户,另一个用于仅使用空密码身份验证的匿名用户。如果可能,我试图避免拥有两个用户帐户。
我正在构建一个托管各种版本控制系统存储库(Subversion、Git 和 Mercurial)的服务。想想 GitHub 或 Bitbucket,但在本地托管(这是关键,因为我们的一些工作不能离开我们的网站)。可以说,这些版本控制系统通用的最简单的访问方法是 SSH。
每个存储库都有针对已知和匿名用户的可配置访问规则。我希望能够为任何版本控制系统使用相同的 URL 来支持已知和匿名用户。由于托管存储库的用户是 URL(例如ssh://user@host/path
)的一部分,因此拥有两个不同的用户 - 一个用于已知用户,另一个用于匿名用户 - 将需要两个不同的 URL。
我应该澄清一个技术问题:我实际上是AuthorizedKeysCommand
在 sshd_config 中使用指令,它指示 sshd 使用外部程序的输出而不是读取 ~/.ssh/authorized_keys 文件。
不是这个事吗?
\n\n\xe2\x80\x94 man /etc/ssh/sshd_config
:
AuthenticationMethods
\n\npublickey,password publickey,keyboard-interactive
要求用户完成公钥身份验证,然后是密码或键盘交互式身份验证。每个阶段仅提供一个或多个列表中的下一个方法,因此对于本示例,不可能在公钥之前尝试密码或键盘交互式身份验证。 归档时间: |
|
查看次数: |
1624 次 |
最近记录: |