【发布时间】:2017-08-28 02:00:46
【问题描述】:
我正在使用子进程将 ssh 会话连接到远程主机以执行多个命令。
我当前的代码:
import subprocess
import sys
HOST="admin@10.193.180.133"
# Ports are handled in ~/.ssh/config since we use OpenSSH
COMMAND1="network port show"
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND1],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
error = ssh.stderr.readlines()
print >>sys.stderr, "ERROR: %s" % error
else:
resp=''.join(result)
print(resp)
COMMAND2="network interface show"
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND2],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
error = ssh.stderr.readlines()
print >>sys.stderr, "ERROR: %s" % error
else:
resp=''.join(result)
print(resp)
在上述情况下,我的代码要求我输入两次密码。
但我想要的是密码应该被询问一次并且必须执行多个命令。
请帮忙
【问题讨论】:
-
stackoverflow.com/a/66620427/3701072 这是我对运行多个命令的看法。
标签: python ssh subprocess