ssh 到服务器并执行 curl 等效于 Python

ssh to server and execute curl equivalent with Python

我有这个命令:

ssh 111.222.333.444 curl -s -k https://123.456.789.876:4567/mock.crt -o /root/mock.crt

我想在我正在编写的 Python 应用程序中包含它或它的等效项。我想我需要结合使用请求和 paramiko 来实现这一点。到目前为止,我已经想出了这个:

  def add_certs(self):
      ssh = paramiko.SSHClient()
      ssh.connect(111.222.333.444)
      url = 'https://123.456.789.876:4567/mock.crt'
      res = ssh.requests.get(url, verify=False)
      print("Add mock server certs: " + res.json())

我还没有机会 运行 因为服务器当前不可用。我仍然没有将输出写入文件,而不是标准输出。我该怎么做呢?另外,如果我尝试执行此操作的方式有任何问题,我将不胜感激。

SSH 协议本身没有 API 让服务器下载文件并将其存储在本地(在服务器上)。

大体如此,Python与否。

您所能做的就是在 SSH 服务器上执行 一些应用程序或命令(如 curl 或类似的),为您完成。在Python/Paramiko中,可以使用SSHClient.exec_command.


可能有一种纯粹的 Python 方法可以实现您的需要,但有一些限制。但是我们不知道你的限制,所以我不能详细说明。