0

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

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

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

4

2 回答 2

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

于 2012-08-20T20:14:17.410 回答
0

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

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

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

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

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

于 2012-08-20T20:05:39.917 回答