我正在编写一个供内部使用的工具。用户将路由器或交换机的IP地址,用户名和密码输入Web表单。然后,该应用使用pexpect SSH进入设备,下载配置并通过运行true / false测试(例如,设置主机名)来测试该配置是否符合各种标准。抛开这是否一个好主意,我的问题是,当我在Flask开发程序下运行该程序时,它可以正常工作。当我将其设置为在WSGI下运行时,它在SSH部分失败,并显示以下错误:
pexpect.exceptions.ExceptionPexpect:找不到命令或命令不可执行:ssh。
我尝试了uWSGI和Unicorn,并与大量的工人等一起玩,但无济于事。我怀疑这是setuid的根源。 Google搜索未指向解决方案。谁能引导我解决问题?如果pexpect无法正常工作,我可能会放弃并要求用户上载自己保存的配置文件,但令我感到沮丧的是,该方法只能在flask开发服务器上使用,而不能在生产服务器上使用。
[您可能只需要用其完整路径替换ssh
,例如/usr/bin/ssh
。
您可以使用which ssh
找到完整路径。