【问题标题】:How to wrap a call of an interactive ssh session from inside a Python script?如何从 Python 脚本中包装交互式 ssh 会话的调用?
【发布时间】:2012-05-21 22:56:24
【问题描述】:

我正在编写一个 SSH 命令行包装器,但我发现它不想以交互方式运行。

假设我确实有 ssh.py,它应该建立一个交互式 ssh 会话。

如果我跑步:

  • subprocess.open('ssh -t server')p.wait(),我会得到一个错误: Pseudo-terminal will not be allocated because stdin is not a terminal.
  • 如果我尝试使用 -t -t 强制它,它会阻塞。

注意:我真的需要一个交互式会话,因为我尝试使用screen 来恢复以前的连接。

我该如何解决这个问题?

注意:我不想以任何方式控制从 python 调用的 ssh。

【问题讨论】:

  • 你看到这个相关问题的答案了吗:stackoverflow.com/questions/4664002/…
  • @jedwards 现在我做到了,但另一个没有提供问题的答案。
  • 我应该在bash 中重新实现我的包装器吗?如果我打电话给bash,我没有同样的问题。不过,我更喜欢使用 python,因为在 bash 中执行相同的逻辑会......真的很丑。
  • “我不想以任何方式从 Python 控制调用的 ssh”到底是什么意思?使用底层操作系统生成 ssh 是否可以,但请查看 ssh 在 python 中的提示?
  • 所以你基本上想要一个 Python 终端模拟器?

标签: python ssh


【解决方案1】:

您可能想改为查看Fabric

【讨论】:

  • 谢谢,但在这种情况下,我正在寻找一个单一文件的解决方案,因此使用外部库。其实这个问题应该与SSH无关,它也应该适用于你想在本地运行交互式控制台应用程序的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 2016-03-28
  • 1970-01-01
  • 2010-09-11
  • 2011-05-05
  • 1970-01-01
相关资源
最近更新 更多