def main(): options,server,remote = parse_options() password = None if options.readpass: password = getpass.getpass('Enter SSH password:') client = paramiko.SSHClient() client.load_system_host_keys() client.set_missing_host_key_policy(paramiko.WarningPolicy()) verbose('Connecting to ssh host %s:%d....' % (server[0],server[1])) try: client.connect(server[0],server[1],username=options.user,key_filename=options.keyfile,look_for_keys=options.look_for_keys,password=password) except Exception as e: print('*** Failed to connect to %s:%d:%r' % (server[0],server[1],e)) exit(0) verbose('Now forwarding remote port %d to %s:%d...' % (options.port,remote[0],remote[1])) try: reverse_forward_tunnel(options.port,remote[0],remote[1],client.get_transport()) except KeyboardInterrupt: print('C-c: Port forwarding stopped.') sys.exit(0)