【问题标题】:using python commands within paramiko在 paramiko 中使用 python 命令
【发布时间】:2012-08-21 04:14:17
【问题描述】:

我今天一直在使用 Paramiko 来处理 Python SSH 连接,它很有用。

但是,我真正希望能够通过 SSH 做的一件事是利用一些 Pythonic 糖。据我所知,我只能使用内置的 Paramiko 函数,如果我想在远程端使用 Python 进行任何操作,我需要使用我放置在那里的脚本并调用它。

有没有一种方法可以让我通过 SSH 连接发送 Python 命令,而不必只使用 Paramiko SSH 连接的限制?由于我在 Python 脚本中通过 Paramiko 运行 SSH 连接,所以我可以这样做似乎是正确的,但我看不到这样做的方法。

【问题讨论】:

标签: python ssh paramiko


【解决方案1】:

RPyC 可能是您正在寻找的。它使您可以直接从本地脚本访问另一台机器的 Python 环境。

>>> import rpyc
>>> conn = rpyc.classic.connect("someremotehost.com")
>>> conn.modules.sys.path
['D:\\projects\\rpyc\\servers', 'd:\\projects', .....]

要通过 SSL 或 SSH 建立连接,请参阅:

http://rpyc.sourceforge.net/docs/secure-connection.html#ssl

【讨论】:

    【解决方案2】:

    嗯,这就是 SSH 创建的目的——成为一个安全的 shell,并且命令在远程机器上执行(你可以把它想象成你坐在远程计算机本身,这两者都不是意味着您可以在 shell 中执行 Python 命令,尽管您是在与机器进行物理交互)。

    您不能发送 Python 命令,仅仅因为 Python 没有命令,它会执行 Python 脚本。

    因此,您可以做的所有事情都是“事情”,它将进行下一步:

    1. 将一段 Python 代码打包到文件中。
    2. scp 发送到远程机器。
    3. 在那里执行。
    4. 删除脚本(或将其缓存以供进一步执行)。

    基本上,shell 命令本身就是远程机器的程序,因此您可以将这些脚本想象成 shell 扩展(例如带有命令行参数的 python 程序)。

    【讨论】:

    • 那么在远程机器上放置一个脚本并调用该脚本是我最好的做法吗?我想不出任何其他方式来做我需要做的事情。
    • @user1463479,基本上是的,如果你想用 Python 编写脚本,这可能是最好的方法。
    • 谢谢你这么清楚。反正我是这么想的,但我需要确认一下。
    • @user1463479 说“Python 没有命令”是不正确的。如果你运行'python --help',你会看到'-c'选项。它允许“程序作为字符串传入”。简单的程序也可以
    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2020-11-04
    • 2014-12-28
    • 2021-05-05
    • 2016-07-08
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多