はい、私は似たようなことをしました。
PythonでSSHを使用してリモートマシンにログインし、そのマシンから特定の残りのAPIを呼び出し、元のクライアントに応答を返す作業サンプルプログラムです。
import paramiko
from xml.etree import ElementTree as ET
import sys
my_server = sys.argv[1]
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect(my_server)
stdin, stdout, stderr = client.exec_command(
'curl http://www.thomas-bayer.com/sqlrest/CUSTOMER/3/')
xml = stdout.read()
xml = ET.fromstring(xml)
assert xml.find('.//FIRSTNAME').text == 'Michael'
あなたがsubprocess
を使用することができた場合は、ここでは別のようなプログラムである:
import subprocess
import sys
from xml.etree import ElementTree as ET
my_server = sys.argv[1]
xml = subprocess.check_output([
'ssh',
my_server,
'curl -s http://www.thomas-bayer.com/sqlrest/CUSTOMER/3/'])
xml = ET.fromstring(xml)
assert xml.find('FIRSTNAME').text == 'Michael'
なぜあなたは、サブプロセスを使用することはできませんか?また、sshをトンネルとして使用することもできます。おそらくそれで十分です。 – syntonym