使用公钥的 OpenSSH 和 PAM 身份验证

使用公钥的 OpenSSH 和 PAM 身份验证

我正在寻找一种使用存储在数据库 (MongoDB) 中的公钥对用户进行身份验证的方法。类似的问题通常会建议安装 OpenSSH 的修补版本 (https://github.com/wuputahllc/openssh-for-git) 针对数据库进行身份验证(GitHub 正在使用修补版本的 OpenSSH)。

我看到有一个 PAM 模块可以通过 MySQL 进行身份验证,但它假设使用用户名/密码身份验证。我想知道我是否可以使用某种 PAM 模块使用公钥对服务器进行身份验证。

已编辑:我需要一个 git 服务器,其中所有用户都将通过“git”用户名进行连接。每个用户没有特定的用户名。

答案1

SSH 公钥认证不是通过 PAM 实现的。它实际上绕过PAMauth堆栈(但仅限于此auth),这是许多管理员所忽略的。

除支持的版本外AuthorizedKeyCommand(如 Florin 的回答中所述),扩展 SSH 公钥认证的唯一方法是修补守护进程(公钥查找)或客户端(私钥查找)。

您可以通过多种方式通过 PAM 扩展您的身份验证选项,但修改 SSH 公钥身份验证的工作方式并不是其中之一。

答案2

AuthorizedKeysCommand就是您所需要的。它需要一个相当新的 OpenSSH 版本,并且您需要编写一个从 MongoDB 数据库获取密钥的包装器命令,但它不需要您修补 OpenSSH。

以及有关以下主题的更多详细信息的链接授权密钥命令

相关内容