簡體   English   中英

在Flask中使用pxssh進行SSH持久連接

[英]SSH persistent connection using pxssh in flask

我正在Web界面上使用pxssh在遠程服務器上運行命令。 無論如何,我可以創建持久的ssh連接,下面的代碼為每個請求調用connect_ssh。

from flask import Flask, jsonify, render_template, request, g, current_app
from flask import _app_ctx_stack
from pexpect import  pxssh

app = Flask(__name__)


def connect_ssh():
    s = pxssh.pxssh()
    s.login('localhost', 'user', 'passwd')
    return s

def get_ssh():
    top = _app_ctx_stack.top
    if not hasattr(top, 'ssh_conn'):
        top.ssh_conn = connect_ssh()
    return top.ssh_conn



@app.route('/_remote_cmd')
def remote_cmd():
    cmd = request.args.get('cmd', '', type=str)
    ssh = get_ssh()
    ssh.sendline(cmd)
    ssh.prompt()
    res = ssh.before
    return jsonify(result=res)


@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run('0.0.0.0')

嘗試致電:

ssh = connect_ssh()

在“ app = Flask()”行下僅運行一次,然后重新運行它,它將僅運行一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM