Guest User

Untitled

a guest
Mar 13th, 2018
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from netmiko import ConnectHandler
  4. import getpass
  5. import textwrap
  6. import getpass
  7. from os.path import expanduser
  8.  
  9.  
  10. class CiscoIOS:
  11.  
  12. def __init__(self, device_param):
  13. self.device_param = device_param
  14. self.ssh = ConnectHandler(**device_param)
  15.  
  16. def load_ssh_key(self, id_rsa=None, user=None):
  17. if not id_rsa:
  18. id_rsa = expanduser('~') + '/.ssh/id_rsa.pub'
  19. if not user:
  20. user = getpass.getuser()
  21. pubkey = open(id_rsa, 'r').read()
  22. pubkey = textwrap.wrap(pubkey, 80)
  23.  
  24. commands = ['ip ssh pubkey-chain',
  25. 'username ' + user,
  26. 'key-string'] + pubkey + ['exit']
  27.  
  28. return self.ssh.send_config_set(commands)
  29.  
  30. def del_ssh_key(self, user):
  31. commands = ['ip ssh pubkey-chain',
  32. 'no username ' + user,
  33. 'exit']
  34. return self.ssh.send_config_set(commands)
  35.  
  36. def write_memory(self):
  37. ret = 'enable password is not set'
  38. if not self.ssh.check_enable_mode() and \
  39. self.device_param['secret']:
  40. self.ssh.enable()
  41. ret = self.ssh.send_command('write memory')
  42. self.ssh.exit_enable_mode()
  43. return ret
  44.  
  45. if __name__ == '__main__':
  46. pwd = getpass.getpass()
  47. device = {'device_type': 'cisco_ios',
  48. 'ip': 'acc-sw-1',
  49. 'username': 'anon',
  50. 'password': pwd,
  51. 'secret': ''}
  52. cisco = CiscoIOS(device)
  53. print(cisco.load_ssh_key(user='anon'))
  54. print(cisco.write_memory())
Advertisement
Add Comment
Please, Sign In to add comment