是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?
Posted
技术标签:
【中文标题】是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?【英文标题】:Is it possible to auth user in third party app with their ssh key used to login? 【发布时间】:2021-05-31 21:18:53 【问题描述】:我正在编写使用强密码保护的 CLI 应用程序。用户应该通过 ssh 在安全边界内的服务器上运行它。我的用户抱怨每次都输入密码太烦人了。
我正在尝试确定是否可以使用用户的 ssh 密钥在我的应用程序中对其进行身份验证,而不是输入应用程序密码。我不能依赖$USER
,因为我想将身份验证绑定到用户的 ssh 密钥。
我考虑过ssh-agent
,但它在用户的机器上运行 afaik。我现在正在考虑 PAM,但不确定是否可以检查用户用于身份验证的密钥。
任何人都可以建议它是否可能以及在哪里进行研究?
【问题讨论】:
什么密码? SSH 密码?那么它与您的应用程序有什么关系呢?我知道用户首先登录到 SSH,然后在远程服务器上执行您的应用程序。 我的意思是应用程序密码。用户运行应用程序,输入密码,应用程序输出一些结果。 “我了解用户首先登录到 SSH,然后在远程服务器上执行您的应用程序”。是的,这是对的。用户使用 SSH 密钥登录远程服务器。我希望我的应用程序确保用户使用预定义的 SSH 密钥集而不是输入密码登录 Imo,这个比较适合Super User或者Unix & Linux。 可以交叉发布吗? 正如您从该问题的答案中看到的那样,没有更好的解决方案,至少没有库存的 OpenSSH SSH 服务器。如果您需要更好的解决方案,您需要更可定制的 SSH 服务器。 【参考方案1】:作为 Martin Prikryl commented,除了安装自定义 OpenSSH 服务器之外,没有其他可靠的解决方案。此外,可能无法以密码方式证明用户使用特定密钥登录系统。
设置环境变量(以任何方式)不足以证明用户确实拥有它。
【讨论】:
以上是关于是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章