0

I use Paramiko Python module to write a simple multiple ssh connections throw:

import paramiko
import time
i=0
while i<20 :
     ssh = paramiko.SSHClient()
     starttime=time.clock()
     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
     try:
        ssh.connect('127.0.0.1', username="user", password="password")
     except:
        endtime=time.clock()
     except OSError:
         print("Os error")
     except paramiko.SSHException:
         print("Ssh error")
     total=endtime-starttime
     print(total)
     i=i+1

The problem is that the code does not capture all the raised exceptions, i.e. :

Exception: Error reading SSH protocol banner[Errno 104] Connection reset by peer
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 2000, in _check_banner
buf = self.packetizer.readline(timeout)
File "/usr/local/lib/python3.5/dist-packages/paramiko/packet.py", line 353, in readline
buf += self._read_timeout(timeout)
File "/usr/local/lib/python3.5/dist-packages/paramiko/packet.py", line 531, in _read_timeout
x = self.__socket.recv(128)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1854, in run
self._check_banner()
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 2005, in _check_banner
'Error reading SSH protocol banner' + str(e)
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner[Errno 104] Connection reset by peer

Exception: Error reading SSH protocol banner
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 2000, in _check_banner
buf = self.packetizer.readline(timeout)
File "/usr/local/lib/python3.5/dist-packages/paramiko/packet.py", line 353, in readline
buf += self._read_timeout(timeout)
File "/usr/local/lib/python3.5/dist-packages/paramiko/packet.py", line 533, in _read_timeout
raise EOFError()
EOFError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1854, in run
self._check_banner()
File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 2005, in _check_banner
'Error reading SSH protocol banner' + str(e)
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

I would capture all the raised exceptions in order to total control my std-output.

Bob
  • 21
  • 1
  • 6
  • Maybe a dup of https://stackoverflow.com/questions/25609153/paramiko-error-reading-ssh-protocol-banner ? – lpiner Oct 22 '17 at 15:24
  • No, I want generate the ssh banner but I want manage the exception in order to control the std-output. – Bob Oct 22 '17 at 18:13

0 Answers0