从我的网站表单向远程 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 服务器发送命令的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Runtime.Exec 传递远程命令 (ssh)
通过 ssh 从 ssh-remote 服务器将终端命令发送回本地?