Python Paramiko:ssh.exec_命令用于收集输出,响应为打开通道

Python Paramiko:ssh.exec_命令用于收集输出,响应为打开通道,python,python-2.7,ssh,remote-server,paramiko,Python,Python 2.7,Ssh,Remote Server,Paramiko,我有一个带有paramiko和ssh的python脚本,如下所示 import paramiko # setup ssh connection this works. no problem. ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) conn = ssh.connect(MACHINEIP, username=ROOTUSER, password=ROOTUSER_P

我有一个带有paramiko和ssh的python脚本,如下所示

import paramiko

# setup ssh connection this works. no problem.
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
conn = ssh.connect(MACHINEIP, username=ROOTUSER, password=ROOTUSER_PASSWORD, port=22)

# This first ssh exec works perfect. 
(sshin1, sshout1, ssherr1) = ssh.exec_command(cmd1)

# When I print the output of 2nd and 3rd ssh exec, I get output saying of channel open
(sshin2, sshout2, ssherr2) = ssh.exec_command(cmd2)
print sshout2
(sshin3, sshout3, ssherr3) = ssh.exec_command(cmd3)
print sshout3
多次使用exec_命令收集输出时,输出中的通道打开消息:

<paramiko.ChannelFile from <paramiko.Channel 2 (open) window=2097152 
   -> <paramiko.Transport at 0x1d42bd0L (cipher aes128-ctr, 128 bits) 
(active; 1 open channel(s))>>>

<paramiko.ChannelFile from <paramiko.Channel 6 (open) window=2097152 
   -> <paramiko.Transport at 0x1d42bd0L (cipher aes128-ctr, 128 bits) 
(active; 2 open channel(s))>>>
>
>

如何关闭此开放频道?或任何解决方案?我使用的是python 2.7。

应该用作
sshout.read()
,而我只是在打印时才使用
sshout

第一个cmd1没有在cmd2尝试启动之前结束?@eri这只是一个普通命令。就像
ls
,所以不应该是case@eri我确实觉得first ssh.exec没有按照消息完成或关闭,但不知道如何关闭它们EOF@eri我把它作为答案放在下面