【问题标题】:can I use ssh keys for authentication in non-ssh application?我可以在非 ssh 应用程序中使用 ssh 密钥进行身份验证吗?
【发布时间】:2014-08-04 03:59:55
【问题描述】:

我有一个由客户端和服务器组成的应用程序,由 Internet 分隔,我在其中控制服务器,但需要对客户端连接进行身份验证。客户端通过 TCP 连接连接到服务器,然后它们交换 JSON 消息。客户端不是基于浏览器的应用程序,它是在 Linux 服务器上运行的无头 node.js 应用程序。

我想对连接进行一些身份验证。我的想法是(类似于 github)授权用户(通过单独的门户)可以将他们的 ssh 公钥添加到他们将运行客户端的 linux 机器的服务器端数据库中,然后我想使用TCP 会话建立期间的那些 ssh 密钥。这有意义吗?我不熟悉使用 ssh 密钥对对 ssh 以外的应用程序进行身份验证,所以我不确定如何实现这一点。另外,我想知道人们是否有替代的“最佳实践”或建议来为这样的应用程序实施身份验证。我想保护服务器及其资源免受未经授权的客户端访问。欢迎任何/所有想法

【问题讨论】:

  • 我不知道这是否适合,但也许使用 libssh (libssh.org) 来封装网络会起作用。

标签: linux node.js authentication tcp ssh-keys


【解决方案1】:

您没有提及您的客户是如何被使用的——如果它是全部自动化的,或者如果有用户手动启动应用程序——但从技术上讲,您的解决方案将是一个可行的(并且可能并不太常见)的解决方案:您会让 SSH 客户端通过 Internet 为您的 TCP 通信建立一个隧道,并让您的应用程序连接到该隧道的本地侦听套接字端。因此,身份验证(以及隐式加密)将由 SSH 处理,并且除了连接到不同的主机(localhost)之外,您的应用程序将完全不知道这一点。

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2021-05-31
    • 2012-11-11
    相关资源
    最近更新 更多