#!/usr/bin/env python # PyNet Class Exercises by Nick Ellson __author__ = "Nick Ellson" import paramiko from paramikoe import SSHClientInteraction import getpass # Collect an target, user, and password. This example assumes that privilege level 15 is on your Cisco VTY. ip = input("Enter Host: ") username = input("Enter Username: ") password = getpass.getpass() #Initialize teh Paramiko connection remote_conn_pre = paramiko.SSHClient() remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy()) remote_conn_pre.connect(ip, username=username, password=password, allow_agent=False, look_for_keys=False) print ("SSH connection established to %s" % ip) # Here we make a simple Paramiko only shell because we do not yet have a prompt example to work with for Expect. # So this will basically log us in, and grab that prompt that we land with, and disconnect. remote_conn = remote_conn_pre.invoke_shell() output = remote_conn.recv(1000).decode("utf-8") prompt = output.strip() remote_conn.close() # Now we reconnect with the paramiko expect module and we have a nice interactive conversation. remote_conn_pre.connect(ip, username=username, password=password, allow_agent=False, look_for_keys=False) interact = SSHClientInteraction(remote_conn_pre, timeout=20, display=False) #Logged in, wait for the prompt to display. interact.expect(prompt) #Shut off the --more-- prompting interact.send('terminal length 0') interact.expect(prompt) #We don't care about the output for that last command, so just clear the buffer. cmd_output = interact.current_output_clean #Let's grab something BIG that use dto be a real timing issue the old way, not knowing how long it might take to get a full # running config over a WAN link. Now we do not care, we will simply wait to the prompt shows up. interact.send('show running-config') interact.expect(prompt) cmd_output = interact.current_output_clean print (cmd_output) #Close our session remote_conn_pre.close()
Wednesday, October 14, 2015
Remote command with Paramiko-Expect
https://www.snip2code.com/Snippet/430662/Python-3-x-SSH-with-Paramiko---Paramiko-
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment