'Paramiko Error reading SSH protocol banner

I'm having issues handling this error: "Error reading SSH protocol banner" + str(e) paramiko.ssh_exception.SSHException: Error reading SSH protocol banner.

this is the code I'm trying to run:

from netmiko import ConnectHandler

from netmiko.ssh_exception import  NetMikoTimeoutException
from paramiko.ssh_exception import SSHException



ip_list = ['192.168.1.77','192.168.1.73','192.168.1.75','192.168.1.74']
for ip in ip_list:
    cisco = {
        'device_type': 'cisco_ios',
        'host':   ip,
        'username': 'gianluca',
        'password': 'gianluca',
        'secret': 'gianluca',
        "fast_cli": False
    }
    try:
        net_connect = ConnectHandler(**cisco)
    except NetMikoTimeoutException:
        print(f'Machine with ip address {ip} is not reachable')
        continue

    except SSHException:
    
        print(f'Ssh not enabled on Machine with ip address {ip}')
        continue

    except:
        print(f'Oops, something went wrong on the Machine with ip address {ip}!')
        continue

    net_connect.enable()   
    net_connect.send_config_from_file('bbb.txt')
    print(f'Machine with ip address {ip} was configured correctly')

but when I reach a machine that doesn't have ssh enabled I get a large red error message, which is the following:

Exception: Error reading SSH protocol banner
Traceback (most recent call last):
  File "C:\Users\gianluca.platania\AppData\Local\Programs\Thonny\lib\site-packages\paramiko\transport.py", line 2211, in _check_banner
    buf = self.packetizer.readline(timeout)
  File "C:\Users\gianluca.platania\AppData\Local\Programs\Thonny\lib\site-packages\paramiko\packet.py", line 380, in readline
    buf += self._read_timeout(timeout)
  File "C:\Users\gianluca.platania\AppData\Local\Programs\Thonny\lib\site-packages\paramiko\packet.py", line 609, in _read_timeout
    raise EOFError()
EOFError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\gianluca.platania\AppData\Local\Programs\Thonny\lib\site-packages\paramiko\transport.py", line 2039, in run
    self._check_banner()
  File "C:\Users\gianluca.platania\AppData\Local\Programs\Thonny\lib\site-packages\paramiko\transport.py", line 2216, in _check_banner
    "Error reading SSH protocol banner" + str(e)
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

I'm trying to not make this appear handling the exception, but it seems like nothing works. Any idea?

PS: I also get this error on thonny: Library stubs not installed for "paramiko.ssh_exception" (or incompatible with Python 3.7



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source