如何通过SSH服务Python CLI应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何通过SSH服务Python CLI应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1707字,纯文字阅读大概需要3分钟。
内容图文
我正在用python编写一个带有Urwid前端和MongoDB后端的应用程序.最终目标是能够通过SSH为应用程序提供服务.该应用程序具有自己的身份验证/身份系统.我并不担心为每个用户启动新进程的开销,预期的并发用户数很少.由于客户端不会调用任何状态信息,而是全部存储在数据库中,因此除了认证目的之外,我并不关心会话.
我想知道是否有任何方法来提供应用程序,而无需滚动我自己的套接字服务器代码或使用Twisted重新编写应用程序代码.老实说,我不知道Urwid和Twisted是如何一起玩的.我看到Urwid有一个TwistedEventLoop方法,声称使用扭曲的反应器,但我找不到任何通过扭曲连接运行Urwid应用程序的示例代码.可以理解的例子,即使是简单的例子.我也看过ZeroMQ,但这似乎比Twisted更难以理解.简而言之,我探索了许多不同的库,这些库旨在通过tcp为应用程序提供服务,其中大多数都是通过telnet服务的.而且几乎所有人都专注于http.
最糟糕的情况我希望我可以创建一个极度锁定的用户作为全局登录并使用chrooted SSH会话.这样每个用户都可以获得自己的chroot / process / client.是的,我知道这可能是一个“非常糟糕的想法(tm)”.但我不得不把它扔出去作为一种可能性.
我感谢任何建设性的反馈.侮辱,谴责和傲慢将被愁眉苦脸,打印出来并吐口水.
-CH
解决方法:
扭曲有一层用于写这种东西:twisted.conch.insults.我要小心不要超过它;它仍然需要更多的文档,缺乏一些功能.正如文档字符串所说,它“目前非常基本”.
然而,侮辱是出于某种原因.我的理解是,即使在Twisted模式下,Urwid也直接与文件描述符对话,因此不能通过同一个线程加密和传输其输出;有人需要阅读该文件描述符的另一端.我相信Twisted模式更多的是使用Urwid控制台应用程序,它使用Twisted网络进行其他工作;您可能想要在客户端应用程序中或在具有控制台视图的服务器中.
如果您不介意每个连接一个进程,您可以使用Conch编写SSH服务器,该服务器使用PTY将您的Urwid程序作为子进程生成,并提供有关其身份验证和环境的信息,例如,通过环境变量.查看spawnProcess API和Jean-Paul Calderone的excellent series on using Conch.
内容总结
以上是互联网集市为您收集整理的如何通过SSH服务Python CLI应用程序全部内容,希望文章能够帮你解决如何通过SSH服务Python CLI应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。