Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
    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))
Пример #4
0
    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)