基本上,如果您调用子进程,它将创建一个本地子进程而不是一个远程子进程,因此您应该与ssh进程进行交互。因此遵循以下原则:但是请注意,如果动态构建目录,则容易受到shell注入的影响,那么END行应该是唯一标识符。为避免END行问题的唯一性,最简单的方法是使用不同的ssh命令
from __future__ import print_function,unipre_literalsimport subprocesssshProcess = subprocess.Popen(['ssh', <remote client>], stdin=subprocess.PIPE, stdout = subprocess.PIPE, universal_newlines=True, bufsize=0)sshProcess.stdin.write("ls .n")sshProcess.stdin.write("echo ENDn")sshProcess.stdin.write("uptimen")sshProcess.stdin.write("logoutn")sshProcess.stdin.close()for line in sshProcess.stdout: if line == "ENDn": break print(line,end="")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)