Moduł paramiko Pythona z wieloma poleceniami

Mam klasę, która tworzy połączenie. Mogę połączyć się i wykonać 1 polecenie, zanim kanał zostanie zamknięty. W innym systemie mogę wykonywać wiele poleceń, a kanał się nie zamyka. Oczywiście jest to problem konfiguracyjny z systemami, z którymi próbuję się połączyć.

class connect:

    newconnection = ''

    def __init__(self,username,password): 
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        try:
            ssh.connect('somehost', username=username,password=password,port=2222,timeout=5)
        except:
            print "Count not connect"
            sys.exit()
        self.newconnection = ssh

    def con(self):
        return self.newconnection

Następnie używam polecenia „ls”, aby wydrukować jakieś wyjście

sshconnection = connect('someuser','somepassword').con()


stdin, stdout, stderr = sshconnection.exec_command("ls -lsa")

print stdout.readlines() 
print stdout 

stdin, stdout, stderr = sshconnection.exec_command("ls -lsa")

print stdout.readlines() 
print stdout 

sshconnection.close()
sys.exit()

Po uruchomieniu pierwszego polecenia exec_c wypisuje oczekiwane wyjście z listy katalogów. Gdy drukuję stdout po pierwszym poleceniu exec_c, wygląda na to, że kanał jest zamknięty

<paramiko.ChannelFile from <paramiko.Channel 1 (closed) -> <paramiko.Transport at 0x2400f10L (cipher aes128-ctr, 128 bits) (active; 0 open channel(s))>>> 

Tak jak powiedziałem w innym systemie, mogę nadal uruchamiać polecenia, a połączenie nie zamyka się. Czy jest jakiś sposób, żeby to otworzyć? lub lepszy sposób widzę powód, dla którego się zamyka?

edytować: Wygląda na to, że możesz uruchomić tylko 1 komendę na SSHClient.exec_command ... więc zdecydowałem się na get_transport (). Open_session (), a następnie uruchom polecenie. Pierwszy zawsze działa. Drugi zawsze zawodzi i skrypty po prostu się zawieszają

questionAnswers(3)

yourAnswerToTheQuestion