我正在编写具有强密码保护的CLI应用程序。用户应该通过ssh在安全边界内的服务器上运行它。我的用户抱怨每次输入密码都太烦人了。
我想弄清楚是否有可能使用用户的ssh密钥在我的应用程序中进行身份验证,而不是输入应用程序密码。我不能依赖$USER
,因为我想将身份验证绑定到用户的ssh密钥。
我考虑ssh-agent
,但它运行在用户的机器上出错。我现在正在考虑使用PAM,但不确定是否可以检查用户用于身份验证的密钥。
谁能建议如果这是可能的,在哪里研究?
正如Martin Prikryl所评论的那样,除了安装自定义OpenSSH服务器之外,没有其他可靠的解决方案。更重要的是,可能没有办法从密码学上证明用户使用某个密钥登录系统。
设置环境变量(以任何方式)都不足以证明用户实际上拥有它。