Topic: Script per switch CISCO  (Letto 178 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline nikola291

  • python unicellularis
  • *
  • Post: 1
  • Punti reputazione: 0
    • Mostra profilo
Script per switch CISCO
« il: Giugno 23, 2020, 22:05 »
Sto cercando di creare uno script Python che possa interagire con uno switch CISCO e in particolare con i comandi del CLI. Ho provato ad utilizzare due moduli in particolare: PARAMIKO e NETMIKO. Sia utilizzando l'uno che l'altro alla fine ottengo sempre lo stesso errore per il seguente codice:
import paramiko

client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.load_system_host_keys(filename="/root/.ssh/known_hosts")
client.connect(hostname='192.168.1.2',username='cisco',password='cisco')


Errore riportato:
Traceback (most recent call last):
  File "/home/nicola/Documenti/PYTHON/progetti/FISIO/prova.py", line 6, in <module>
    client.connect(hostname='192.168.1.2',username='cisco',password='cisco')
  File "/home/nicola/Documenti/PYTHON/progetti/venv/lib/python3.8/site-packages/paramiko/client.py", line 435, in connect
    self._auth(
  File "/home/nicola/Documenti/PYTHON/progetti/venv/lib/python3.8/site-packages/paramiko/client.py", line 764, in _auth
    raise saved_exception
  File "/home/nicola/Documenti/PYTHON/progetti/venv/lib/python3.8/site-packages/paramiko/client.py", line 751, in _auth
    self._transport.auth_password(username, password)
  File "/home/nicola/Documenti/PYTHON/progetti/venv/lib/python3.8/site-packages/paramiko/transport.py", line 1509, in auth_password
    return self.auth_handler.wait_for_response(my_event)
  File "/home/nicola/Documenti/PYTHON/progetti/venv/lib/python3.8/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response
    raise e
paramiko.ssh_exception.BadAuthenticationType: Bad authentication type; allowed types: ['publickey']


Attualmente sullo switch è abilitato l'accesso tramite username e password e non con l'utilizzo di una chiave.

Guardando la documentazione disponibile dei moduli e facendo riferimento agli script di esempio, la connessione tra client e switch dovrebbe avvenire senza problemi con il codice riportato

Secondo voi dove sbaglio?
« Ultima modifica: Giugno 23, 2020, 22:07 da nikola291 »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.151
  • Punti reputazione: 9
    • Mostra profilo
Re:Script per switch CISCO
« Risposta #1 il: Giugno 26, 2020, 22:45 »
Il problema è che la documentazione dovrebbe essere in effetti proprio *letta*.... non basta "fare riferimento (eufemismo...) agli script di esempio".

Per esempio, quando trovi un errore, puoi andarti a leggere che cosa vuol dire quell'errore.
http://docs.paramiko.org/en/stable/api/ssh_exception.html#paramiko.ssh_exception.BadAuthenticationType

Ora, non so che cosa vuol dire questo nel tuo contesto, ma è una informazione che se fossi in te proverei ad approfondire. Considerando anche che il messaggio di errore aggiunge poi "allowed types: ['publickey']", che mi sembra un'altra indicazione per lo meno... interessante...

Oltre a questo, guarda che gran parte del kung fu dell'hacker super-esperto a dire il vero consiste semplicemente nel googlare il messaggio di errore.
Se googli per "paramiko.ssh_exception.BadAuthenticationType", ottieni subito una interessante discussione https://github.com/paramiko/paramiko/issues/787 che ti suggerisce un po' di cose... e vedo che a un certo punto ha poi un link verso stack overflow con altri suggerimenti ancora.
Partirei da qui.