Tutorial 12: Terminal

This sections shows several examples how to use terminal client.

API

Module hydratk.lib.network.term.client Method TermClient is factory method which requires attribute engine to create proper TermClient object instance. Additional attributes are passed as args, kwargs.

Supported protocols:

  • SSH: module ssh_client
  • Telnet: module telnet_client

Methods:

  • connect: connect to server

  • disconnect: disconnect from server

  • exec_command: execute command on server

    Note

    API uses HydraTK core functionalities so it must be running.

SSH

# import library
import hydratk.lib.network.term.client as term

# initialize client
client = term.TermClient('SSH')

# connect to SSH server using password, certificate
# returns bool
client.connect(host='127.0.0.1', port=22, user='aaa', passw='bbb')
client.connect(host='127.0.0.1', port=22, user='aaa', cert='/home/lynus/key.pri')

# execute commands
# returns bool, stdout lines or stderr lines

# print working directory
print client.exec_command('pwd')

# make directory
client.exec_command('mkdir pokus')

# create file
client.exec_command('touch evil')

# delete file in interactive mode
# Y is sent to stdin
client.exec_command('rm -i evil', 'Y')

# execute script
client.exec_command('./pok.sh')

# disconnect from server
# returns bool
client.disconnect()

Telnet

# import library
import hydratk.lib.network.term.client as term

# initialize client
client = term.TermClient('TELNET')

# connect to Telnet server
# returns bool, lines
res, out = client.connect('freechess.org', 23)

# execute command
# returns bool, lines
res, out = client.exec_command('login')
res, out = client.exec_command('password')
res, out = client.exec_command('help')

# disconnect from server
# returns bool
client.disconnect()