Python,Paramiko:如何执行“ssh -n user@host cmd”使用帕里科?

发布于 2024-12-06 13:02:47 字数 307 浏览 0 评论 0原文

我正在尝试通过 SSH 从 Python 远程执行命令,在这种特殊情况下需要将 stdin 重定向到 /dev/null。

也就是说,与使用带有 -n 标志的 OpenSSH 客户端相同:

ssh -n user@host cmd

如何使用 实现此 (-n)帕拉米科?

paramiko.SSHClient.exec_command() 似乎不允许这样做,但也许我错过了一些东西?

I'm trying to execute a command remotely via SSH from Python, and in this particular case need stdin to be redirected to /dev/null.

That is, the same as using the OpenSSH client with its -n flag:

ssh -n user@host cmd

How do you achieve this (-n) with Paramiko?

paramiko.SSHClient.exec_command() doesn't seem to allow this, but maybe I'm missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苏别ゝ 2024-12-13 13:02:47

除非我错误地理解了你的问题:你不需要实现这个目标。除非您自己明确这样做,否则不会自动从标准输入读取任何内容/写入远程进程的标准输入。所以你不需要阻止从标准输入读取的发生?

编辑:如果远程进程需要标准输入上的数据并一直等待它,可能会出现问题?尝试在通道上调用 shutdown_write()

stdin, stdout, stderr = client.exec_command(cmd)
stdin.channel.shutdown_write()

Unless I understand your question incorrectly: you don't need to achieve this. Nothing is automatically read from stdin/written to the remote process' stdin unless you yourself explicitly do so. So you don't need to prevent reading from stdin from happening?

EDIT: there might be an issue if the remote process expects data on stdin, and keeps waiting for it? Try calling shutdown_write() on the channel:

stdin, stdout, stderr = client.exec_command(cmd)
stdin.channel.shutdown_write()
明媚如初 2024-12-13 13:02:47

我会放弃 paramiko 并开始使用 fabric。它可以让您在系统上进行远程调用。它使用 paramiko 进行 ssh 连接,并提供漂亮干净的界面来执行更多操作。

我不知道为什么你需要将 stdin 指向 /dev/null,但有一些设置可以用 Fabric 来抑制它。

祝你好运!

I would ditch paramiko and start using fabric. It will let you do remote calls on the system. It uses paramiko for the ssh connection and provides the nice clean interface for doing alot more.

I am not sure why you need to pip stdin to /dev/null but there are settings to suppress it with fabric.

Goodluck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文