2017-03-20 1 views
1

J'essaie d'accéder aux périphériques réseau accessibles uniquement si SSH provient d'un hôte bastion qui exécute SunOS (pas de support proxycommand) ou ssh tunneling)Exscript: Accès aux périphériques réseau distants via un hôte bastion tout en utilisant des pilotes spécifiques aux périphériques pour reconnaître l'invite de périphérique

Mon approche serait d'utiliser le pilote générique pour accéder à l'hôte bastion. et de là à utiliser 'ssh remotedevicename' pour se connecter au périphérique distant.

Dans mon cas, l'appareil distant nécessite une seule authentification étape qui me laisse tomber à l'invite # (niveau 15 accès pour les périphériques Cisco)

je parviens à authentifier, mais je ne peux pas envoyer des commandes

ici est ce que j'utilise

conn = SSH2() 
conn.debug=5 
conn.set_driver('generic')   
conn.connect('bastion') 
conn.login(account)   
print conn.response 
conn.send('ssh 1.1.1.1\n') 
conn.expect('Password:') 
print conn.response 
conn.send('password\n') 

à ce stade, je pense que je devrais changer le pilote avec

conn.set_driver('nxos') 
conn.execute ("show cdp neighbors\n") 

mais après avoir fait que les temps de script avec

nxos: Sending 'show cdp neighbors\n\r' 
nxos: Expecting a prompt 
nxos: Expected pattern: ["'[\\\\r\\\\n][\\\\-\\\\w+\\\\.:/]+(?:\\\\([^\\\\)]+\\\\))?[>#] ?$'"] 
Traceback (most recent call last): 

Répondre

1

La séquence ci-dessus est bien je manquais « longueur terminale 0 » et le script a été coincé avec cette