我的家庭networking当前位于DD-WRT路由器后面,我可以使用公钥authentication访问DD-WRT路由器。 每当我需要从家庭networking访问某个东西时,我可以简单地从DD-WRT路由器创build一个SSH隧道。
提供我的私钥是安全的,不会受到影响,我认为这是一个非常安全的设置。
但是,即使没有可用的ssh客户端,我也希望能够访问路由器,并且只有可用的Web浏览器。
是否可以构build一个安全的解决scheme(或者是否有现有的服务),以便我可以使用Web应用程序(通过HTTPS访问)来访问我的路由器?
我想Web应用程序需要能够创build一个SSH连接到我的DD-WRT路由器。 为此,Web应用程序需要访问我的私钥,以便将其发送到Web应用程序。
我可以想象几个场景在哪里
我的私钥使用Web表单通过https发送到Web应用程序,以便Web应用程序可以创buildSSH连接。 Web应用程序接收SSH密钥,不会将密钥持久保存到磁盘,而只是将其保存在内存中以创buildSSH连接。
新的密钥对专门为Web应用程序生成。 Web应用程序将私钥存储在其数据库中,并将公钥发送给我。 Web应用程序使用它来创build到我的路由器的安全连接。 Web应用程序需要确保私钥是安全的。
这些情景都没有让我感到很舒服,但是我对安全性不够了解,无法做出适当的评估,我想知道是否有更合适的解决scheme来解决这个问题。 (让Web应用程序充当代表用户进行这种SSH通信的中介?)
或者这是“没有完成”的东西。
你基本上可以select两种方法之一:
设置通常所说的SSL VPN–一个通往TLS的服务的Web网关,通过TLS进行encryption,并通过HTTP访问服务
即使你坐在外国电脑前面,也可以使用一个“可用”的SSH客户端 – 例如像MindTerm这样的Java applet。
从不受信任的计算机login时可能会遇到的身份validation问题可以通过运行双因素身份validation或一次性密码(或两者兼而有之)来解决 – 请参阅OPIE以了解如何完成此操作。
有几个公司围绕WebSSH,如SerFish , GotoSSH和SSHD.org 。 有些会让你使用私钥,有些只能使用用户名和密码。 但是,如果您不想交出私钥,这些都不适用。
在系统上设置networking服务器的另一种select,并使用WebSSH客户端,您可以安装在您的系统上,如Ajaxterm或Webshell这些给你的私有密钥给任何人,让你在完全控制安全,但有一个缺点,就是要求你在你的web服务器上设置额外的安全性。