最近想要在本地用flask框架创建网页,在网页端与远程开发板进行交互,里面有一项需求就是当我点击网页端的按钮时,开发板会执行相应的脚本文件进行预警。以下演示如何使用Python的Paramiko库来通过SSH连接开发板实现上述功能。
主要的代码思路如下:
@app.route('/remote_reminder', methods=['POST'])
def remote_reminder():
"""通过SSH执行远程脚本"""
try:
# 创建SSH客户端实例
ssh = paramiko.SSHClient()
# 设置SSH客户端的主机密钥策略为AutoAddPolicy,即自动添加新主机的密钥到本地的HostKeys对象中
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 使用提供的远程主机地址、用户名和密码进行SSH连接
ssh.connect(REMOTE_HOST, username=REMOTE_USER, password=REMOTE_PASSWORD)
# 通过SSH在远程主机上执行脚本 'sh /home/set_led.sh &'
# '&' 表示在后台运行脚本,避免阻塞
stdin, stdout, stderr = ssh.exe