是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?

问题描述

我正在编写使用强密码保护的 CLI 应用程序。用户应该通过 ssh 在安全边界内的服务器上运行它。我的用户抱怨每次都输入密码太烦人了。

我想弄清楚是否可以使用用户的 ssh 密钥在我的应用程序中对它们进行身份验证,而不是输入应用程序密码。我不能依赖 $USER,因为我想将身份验证绑定到用户的 ssh 密钥。

我考虑过 ssh-agent 但它在用户的机器上运行 afaik。我现在正在考虑使用 PAM,但不确定是否可以检查用户用来进行身份验证的密钥。

有人可以建议是否有可能以及在哪里研究?

解决方法

作为 Martin Prikryl commented,除了安装自定义 OpenSSH 服务器之外,没有其他可靠的解决方案。更重要的是,可能没有办法以密码方式证明用户使用某个密钥登录系统。

设置环境变量(以任何方式)都不足以证明用户确实拥有它。