我必须编写一个python代码来执行客户端的一些命令。 python脚本需要在client1机器中。在我的Python代码中,我需要从host1执行命令。但是host1只能从host2到达
该命令必须在client3中执行。 但client3不能直接从client1访问。我们需要先对“client2”服务器执行ssh,然后再对ssh执行client3。
有没有出路?
我必须编写一个python代码来执行客户端的一些命令。 python脚本需要在client1机器中。在我的Python代码中,我需要从host1执行命令。但是host1只能从host2到达
该命令必须在client3中执行。 但client3不能直接从client1访问。我们需要先对“client2”服务器执行ssh,然后再对ssh执行client3。
有没有出路?
我没有亲自管理,但你喜欢你的声音可以利用以下的回答:How to execute a process remotely using python
下面是这个问题的答案给出了例子:使用子库,您可以
import subprocess
ret = subprocess.call(["ssh", "[email protected]", "program"]);
# or, with stderr:
prog = subprocess.Popen(["ssh", "[email protected]", "program"], stderr=subprocess.PIPE)
errdata = prog.communicate()[1]
执行SSH,然后用您的python代码从您的客户端1执行client 2
机器上的命令。
希望它有帮助!
你也可以用'Popen(['ssh','user @ host'],stdin = PIPE)'启动ssh,并用'process.stdin.write('command \ n')'执行命令,这对于if你会发送很多命令。 –
>> Popen(['ssh','user @ host'],stdin = PIPE)如何在此传递ssh的密码? – esham
看看上面的答案,似乎最好的解决方案是设置SSH密钥以避免密码。 – beerandsmiles
us3 host1上的iptables将数据包转发给host2 –
我不确定是什么问题。如果没有网关服务器,你会''ssh client2“命令'',所以你不能'ssh gateway'ssh client2'command'”'? –
客户端2不能从客户端1直接访问。您需要首先登录到网关服务器,然后从该机器,SSH到客户端2 – esham