从我的网站表单向远程 ssh 服务器发送命令

Posted

技术标签:

【中文标题】从我的网站表单向远程 ssh 服务器发送命令【英文标题】:Send commands to a remote ssh server from my website form 【发布时间】:2020-05-16 10:51:20 【问题描述】:

我想创建一个用户可以填写表格的网站,

然后我将这些参数发送到远程 ssh 服务器以发出 python 脚本。

例如,在我的网页中,表单包含输入文本,para1,para2,para3等。

用户点击提交后,应该可以向远程ssh服务器终端发送命令“python para1, para2, para3,.....”

我需要什么样的技术来解决这个问题??

谢谢。

【问题讨论】:

您使用的是什么网络框架?通常,您会为这样的事情使用后台作业。 python的主要后台作业系统是celery 【参考方案1】:

您可以使用 Flask Framework 创建 Web 应用程序,然后使用 Paramiko 模块将 Python 脚本与 SSH 服务器连接并执行 来自本地机器的命令。您的 python 脚本将充当 SSH 客户。

查看此链接,该链接显示了使用 Python 和 Flask 框架创建 Web 应用程序的步骤: https://code.tutsplus.com/tutorials/creating-a-web-app-from-scratch-using-python-flask-and-mysql--cms-22972

Web 应用程序示例: 对于您的简单表格,您可以更新主页和注册页面以获取 形成参数并使用这些参数将命令传递给 SSH 服务器。

请在下面找到 Paramiko 的链接和一个显示示例的链接。设置 Paramiko 真的很容易。

try:
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.WarningPolicy)

    client.connect(hostname, port=port, username=username, password=password)

    stdin, stdout, stderr = client.exec_command(command)
    print stdout.read(),

finally:
    client.close()

这里,主机名是 SSH 服务器,用户名和密码是您通常用来连接 SSH 服务器的用户名和密码。

帕拉米科 - http://docs.paramiko.org/en/stable/ 示例 - https://gist.github.com/mlafeldt/841944

【讨论】:

以上是关于从我的网站表单向远程 ssh 服务器发送命令的主要内容,如果未能解决你的问题,请参考以下文章

SSH隧道到远程服务器的问题

无法使用 Runtime.Exec 传递远程命令 (ssh)

通过 ssh 从 ssh-remote 服务器将终端命令发送回本地?

在远程服务器上运行基于 opencv 的 python 脚本并从我的 macbook 进行 ssh 转发给我一个错误

Linux命令之远程拷贝文件scp

如何使用贝宝付款,然后从我的表单中保存参数?