def __init__(self, session): self.session = session self.callbacks = pysshct.buildCallbacks( pysshct.ssh_channel_callbacks_struct, pysshct.CB_CHANNEL_FUNCS, self) self.libssh_channel = pysshct.lib.ssh_new_channel( session.libssh_session, self.callbacks)
def __init__(self, session): self.buffer = [] self.session = session self.callbacks = pysshct.buildCallbacks( pysshct.ssh_channel_callbacks_struct, pysshct.CB_CHANNEL_FUNCS, self) self.libssh_channel = pysshct.lib.ssh_new_channel( session.libssh_session, self.callbacks)
def __init__(self, client_socket, addr, host_key_file): self.libssh_error = pysshct.lib.ssh_new_error() self.username = None self.kbdint_response = None self.client_socket = client_socket self.client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.local_ip, self.local_port = client_socket.getsockname() self.channels = [] self.client_addr = addr[0] self.client_port = addr[1] self.host_key_file = host_key_file Logger.info("Incoming ssh connection from %s " % self.client_addr) self.server_callbacks = pysshct.buildCallbacks( pysshct.ssh_server_callbacks_struct, pysshct.CB_SERVER_SESSION_FUNCS, self) self.libssh_mainloop = libssh_mainloop = pysshct.lib.ssh_new_poll_ctx() self.authmethods = ( # pysshct.SSH_AUTH_METHOD_NONE pysshct.SSH_AUTH_METHOD_PASSWORD # | pysshct.SSH_AUTH_METHOD_GSSAPI_MIC # | pysshct.SSH_AUTH_METHOD_PUBLICKEY # | pysshct.SSH_AUTH_METHOD_INTERACTIVE ) self.libssh_session = pysshct.lib.ssh_start_new_server_session( self.server_callbacks, libssh_mainloop, self.client_socket.fileno(), self.host_key_file, # host keyfile contains RSA, DSA or ECDSA key self.authmethods) pysshct.lib.ssh_event_set_session_server(self.libssh_mainloop, self.libssh_session) self.lastactiontime = time.time() while True: rc = pysshct.lib.ssh_event_dopoll(self.libssh_mainloop, 20000) if rc == pysshct.SSH_ERROR: break for channel in self.channels: channel.flush() polltime = time.time() print("Polling %s" % str(polltime))
def __init__(self, client_socket, addr, host_key_file): self.libssh_error = pysshct.lib.ssh_new_error() self.username = None self.kbdint_response = None self.client_socket = client_socket self.client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.local_ip, self.local_port = client_socket.getsockname() self.client_addr = addr[0] self.client_port = addr[1] self.host_key_file = host_key_file Logger.info("Incoming ssh connection from %s " % self.client_addr) self.server_callbacks = pysshct.buildCallbacks( pysshct.ssh_server_callbacks_struct, pysshct.CB_SERVER_SESSION_FUNCS, self) self.libssh_mainloop = pysshct.lib.ssh_new_poll_ctx() self.authmethods = ( # pysshct.SSH_AUTH_METHOD_NONE pysshct.SSH_AUTH_METHOD_PASSWORD # | pysshct.SSH_AUTH_METHOD_GSSAPI_MIC # | pysshct.SSH_AUTH_METHOD_PUBLICKEY # | pysshct.SSH_AUTH_METHOD_INTERACTIVE ) self.libssh_session = pysshct.lib.ssh_start_new_server_session( self.server_callbacks, self.libssh_mainloop, self.client_socket.fileno(), self.host_key_file, # host keyfile contains RSA, DSA or ECDSA key self.authmethods ) pysshct.lib.ssh_event_set_session_server(self.libssh_mainloop, self.libssh_session) self.lastactiontime = time.time() while True: rc = pysshct.lib.ssh_event_dopoll(self.libssh_mainloop, 20000) if rc == pysshct.SSH_ERROR: break polltime = time.time() print "Polling %s" % str(polltime)