我想以编程方式从基于 Window 的 Qt C++ 应用程序远程运行 Linux 命令。最简单的方法是什么?
5 回答
一种方法是,拥有客户端-服务器模型,服务器驻留在 linux 中,客户端可以是您的计算机。这样您就可以向服务器发送命令并将其输出扔给您。这是我思考这个问题的一种方式。
使用 UPnP 绕过防火墙(或使用 NAT 穿越或 UDP/TCP 打孔)。否则(不转发端口)将无法访问服务器。
第二种是编写自己的 RSH 和 SSH 实用程序。(或使用 putty 或其他预先存在的软件)
您需要在 Linux 机器上安装某种服务器,而您的 Windows 机器将成为客户端。我想说最简单的方法就是制作一个 php 脚本来运行您的命令并将其放在您的 www 根目录中,然后让您的 Windows 机器获取该 URL。
归根结底,如果不知道您对安全性的要求是什么,以及您将要运行什么样的命令,就很难对这个问题给出明确的答案。
只需使用套接字连接到 linux 上的 telnet 服务器,然后发送命令。
这实际上只需要很少的代码。在此处检查 Java 版本:
你也可以用 Qt/C++ 做类似的事情。
简单的服务器端程序女巫将处理请求,然后使用 ex system() 函数将成为解决方案的“远程”部分。
而在客户端,由功能女巫处理的简单文本字段将能够连接到服务器以发送命令运行请求。
在这个解决方案中最重要的是要注意安全性。
如果您在 Windows 上使用任何版本,您都可以使用 Plink。如果你可以运行 PuTTY,那么你可以运行 PLink。PuTTY Plink 文档。使用它,您可以使用可执行文件,并使事情自动化。否则,如果您正在寻找一种特定的编程语言,它们仍然依赖于一些 SSH 库。如果您正在编写自己的安装程序,您可以在安装程序中包含 PLink.exe,并将其与您的应用程序一起分发。
从文档页面:
Z:\sysosd>plink login.example.com 'echo "Hello World"'