当前位置: 首页 > 面试题库 >

在Paramiko中运行交互式命令

归翔
2023-03-14
问题内容

我正在尝试通过paramiko运行交互式命令。该cmd执行尝试提示输入密码,但是我不知道如何通过paramiko的exec_command提供密码,并且执行挂起。如果cmd执行期望交互输入,是否可以将值发送到终端?

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("psql -U factory -d factory -f /tmp/data.sql")

有谁知道如何解决?谢谢。


问题答案:

完整的paramiko发行版附带了很多很好的演示。

在demos子目录中,demo.pyinteractive.py有完整的交互式TTYhtml" target="_blank">示例,这可能对您的情况有些过分。

在您的示例中,上述ssh_stdin行为就像一个标准的Python文件对象,ssh_stdin.write因此只要通道仍然打开,它就应该起作用。

我从不需要写stdin,但是文档建议在命令退出后立即关闭通道,因此使用标准stdin.write方法发送密码可能无效。通道本身上有较低级别的paramiko命令,可为您提供更多控制权-
了解如何SSHClient.exec_command对所有详细信息实施该方法。



 类似资料:
  • 问题内容: 我尝试运行此脚本: 现在的问题是:我怎样才能把这些变量,,到变量? 问题答案: Python有很多执行字符串格式化的方法。最简单的方法之一就是将字符串的各个部分简单地串联在一起:

  • 问题内容: 我通常使用java.lang.ProcessBuilder和java.lang.Process来运行外部命令行程序,并且对运行和完成命令运行良好。例如,这将在工作目录中运行带有参数“ myArg”的“ myProgram”: 但是,假设我想运行脚本或程序或具有交互式输入的内容(启动后提示我提供更多输入)。我可以使用与上面类似的代码在Java中执行此操作,还是需要其他方法?还是有一些图书

  • MOAC母链客户端使用了和以太坊类似的交互式命令行。用户可以在命令行(console)中执行内置的JAVA script命令或者利用脚本(script),输出结果显示在命令行中。 这里使用的chain3对象,是MOAC参考以太坊,而开发的一套javascript库,目的是让应用程序能够与MOAC的VNODE和SCS节点进行通信。注意,这里有两层,moac启动了一个MOAC VNODE节点,cons

  • 问题内容: 我正在尝试使用带有适当命令的命令自动创建开发Docker映像。我需要在命令中运行的脚本之一希望用户单击以阅读其许可协议。因此,有两个问题: ?中所有命令的输出在哪里? 可以与上述命令进行交互的解决方案是什么?现在,命令陷入僵局,要求用户无限循环输入。 问题答案: 在构建过程中,命令的输出显示在您的终端中。Docker构建过程是完全非交互的,因此您必须找到某种方式来自动接受这些条款(几乎

  • 我试图使用命令和适当的自动创建开发Docker映像。我需要在命令中运行的一个脚本希望用户单击并阅读他们的许可协议。因此有两个问题: 中所有 命令的输出在哪里? 有什么解决方案可以与上述命令交互?现在,命令只能在无限循环中向用户请求输入。

  • 问题内容: 我想编写一个程序(在Windows 7的Python 3.x中),通过ssh在远程shell上执行多个命令。在查看了paramikos的功能之后,我意识到它不适合我的用例(因为在执行命令后通道被关闭了),因为这些命令取决于环境变量(由先前的命令设置),并且不能被合并为一个调用它们,因为它们将在程序中的不同时间执行。 因此,我想在同一通道中执行命令。我研究的下一个选项是使用paramik