ssh到服务器,并使用Python执行curl等效操作

syqv5f0l  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(104)

我有这个命令:

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

字符串
我想在我正在编写的Python应用程序中包含它或它的等效物。我想我需要使用requests和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())


我还没有机会运行这个,因为服务器目前不可用。我仍然没有得到输出写入文件,而不是stdout。我该怎么做?此外,如果有任何错误的方式,我试图这样做,我会感激的反馈。

5vf7fwbs

5vf7fwbs1#

SSH协议本身没有API来让服务器下载文件并将其存储在本地(服务器上)。
这是真的,不管是不是Python。
您所能做的就是在SSH服务器上执行 * 某个应用程序或命令 *(如curl或类似的命令),以便为您执行。在Python/Paramiko中,你可以使用SSHClient.exec_command

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

相关问题