Gil*_*vik 6 ssh database authentication pam public-key
我正在寻找一种使用存储在数据库(MongoDB)中的公钥来验证用户身份的方法。类似的问题通常会导致建议安装 OpenSSH 的补丁版本 ( https://github.com/wuputahllc/openssh-for-git ),该版本针对数据库进行身份验证(GitHub 正在使用 OpenSSH 的补丁版本)。
我看到有一个 PAM 模块可以通过 MySQL 进行身份验证,但它假定用户名/密码身份验证。我想知道是否可以使用某种 PAM 模块对服务器使用公钥进行身份验证。
编辑:我需要一个 git 服务器,所有用户都将通过“git”用户名进行连接。每个用户不会有特定的用户名。
SSH 公钥认证不是通过 PAM 实现的。它实际上绕过了 PAMauth堆栈(但仅限于auth),这是许多管理员所忽视的。
除了支持的版本AuthorizedKeyCommand(如 Florin 的回答中提到的),扩展 SSH 公钥身份验证的唯一方法是修补守护程序(公钥查找)或客户端(私钥查找)。
有很多方法可以通过 PAM 扩展您的身份验证选项,但修改 SSH 公钥身份验证的工作方式不是其中之一。
AuthorizedKeysCommand是你所需要的。它将需要一个相当新版本的 OpenSSH 可用,并且您编写一个包装命令来从 MongoDB 数据库中获取密钥,但它不需要您修补 OpenSSH。
以及包含有关AuthorizedKeysCommand 的更多详细信息的链接。