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 方法可以实现您的需要,但有一些限制。但是我们不知道你的限制,所以我不能详细说明。
我有这个命令:
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 方法可以实现您的需要,但有一些限制。但是我们不知道你的限制,所以我不能详细说明。