当前位置: 首页>>代码示例>>Python>>正文


Python Transport.load_server_moduli方法代码示例

本文整理汇总了Python中paramiko.Transport.load_server_moduli方法的典型用法代码示例。如果您正苦于以下问题:Python Transport.load_server_moduli方法的具体用法?Python Transport.load_server_moduli怎么用?Python Transport.load_server_moduli使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在paramiko.Transport的用法示例。


在下文中一共展示了Transport.load_server_moduli方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: MyTSFTPRequestHandler

# 需要导入模块: from paramiko import Transport [as 别名]
# 或者: from paramiko.Transport import load_server_moduli [as 别名]
class MyTSFTPRequestHandler(SocketServer.BaseRequestHandler):
    timeout = 60
    auth_timeout = 60

    def setup(self):
        self.transport = Transport(self.request)
        self.transport.load_server_moduli()
        so = self.transport.get_security_options()
        so.digests = ('hmac-sha1', )
        so.compression = ('[email protected]', 'none')
        self.transport.add_server_key(self.server.host_key)
        self.transport.set_subsystem_handler(
            'sftp', MyTSFTPServer, MyTSFTPServerInterface)

    def handle(self):
        self.transport.start_server(server=MyTServerInterface())

    def handle_timeout(self):
        self.transport.close()
开发者ID:mytardis,项目名称:mytardis,代码行数:21,代码来源:sftp.py

示例2: SSHHandler

# 需要导入模块: from paramiko import Transport [as 别名]
# 或者: from paramiko.Transport import load_server_moduli [as 别名]
class SSHHandler(ServerInterface, BaseRequestHandler):
    telnet_handler = None
    pty_handler = None
    host_key = None
    username = None

    def __init__(self, request, client_address, server):
        self.request = request
        self.client_address = client_address
        self.tcp_server = server

        # Keep track of channel information from the transport
        self.channels = {}

        try:
            self.client = request._sock
        except AttributeError as e:
            self.client = request
        # Transport turns the socket into an SSH transport
        self.transport = Transport(self.client)

        # Create the PTY handler class by mixing in
        TelnetHandlerClass = self.telnet_handler

        class MixedPtyHandler(TelnetToPtyHandler, TelnetHandlerClass):
            # BaseRequestHandler does not inherit from object, must call the __init__ directly
            def __init__(self, *args):
                super(MixedPtyHandler, self).__init__(*args)
                TelnetHandlerClass.__init__(self, *args)

        self.pty_handler = MixedPtyHandler

        # Call the base class to run the handler
        BaseRequestHandler.__init__(self, request, client_address, server)

    def setup(self):
        """Setup the connection."""
        log.debug('New request from address %s, port %d', self.client_address)

        try:
            self.transport.load_server_moduli()
        except:
            log.exception('(Failed to load moduli -- gex will be unsupported.)')
            raise
        try:
            self.transport.add_server_key(self.host_key)
        except:
            if self.host_key is None:
                log.critical('Host key not set!  SSHHandler MUST define the host_key parameter.')
                raise NotImplementedError('Host key not set!  SSHHandler instance must define '
                                          'the host_key parameter.  Try host_key = paramiko_ssh'
                                          '.getRsaKeyFile("server_rsa.key").')

        try:
            # Tell transport to use this object as a server
            log.debug('Starting SSH server-side negotiation')
            self.transport.start_server(server=self)
        except SSHException as e:
            log.warn('SSH negotiation failed. %s', e)
            raise

        # Accept any requested channels
        while True:
            channel = self.transport.accept(20)
            if channel is None:
                # check to see if any thread is running
                any_running = False
                for c, thread in self.channels.items():
                    if thread.is_alive():
                        any_running = True
                        break
                if not any_running:
                    break
            else:
                log.info('Accepted channel %s', channel)

    class dummy_request(object):
        def __init__(self):
            self._sock = None

    @classmethod
    def streamserver_handle(cls, socket, address):
        """Translate this class for use in a StreamServer"""
        request = cls.dummy_request()
        request._sock = socket
        server = None
        cls(request, address, server)

    def finish(self):
        """Called when the socket closes from the client."""
        self.transport.close()

    def check_channel_request(self, kind, chanid):
        if kind == 'session':
            return OPEN_SUCCEEDED
        return OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED

    def set_username(self, username):
        self.username = username
        log.info('User logged in: %s' % username)
#.........这里部分代码省略.........
开发者ID:czardoz,项目名称:libtelnetsrv,代码行数:103,代码来源:paramiko_ssh.py

示例3: SSHHandler

# 需要导入模块: from paramiko import Transport [as 别名]
# 或者: from paramiko.Transport import load_server_moduli [as 别名]
class SSHHandler(ServerInterface, BaseRequestHandler):
    telnet_handler = None
    pty_handler = None
    host_key = None
    username = None
    
    def __init__(self, request, client_address, server):
        self.request = request
        self.client_address = client_address
        self.tcp_server = server
        
        # Keep track of channel information from the transport
        self.channels = {}
        
        self.client = request._sock
        # Transport turns the socket into an SSH transport
        self.transport = Transport(self.client)
        
        # Create the PTY handler class by mixing in
        TelnetHandlerClass = self.telnet_handler
        class MixedPtyHandler(TelnetToPtyHandler, TelnetHandlerClass):
            # BaseRequestHandler does not inherit from object, must call the __init__ directly
            def __init__(self, *args):
                TelnetHandlerClass.__init__(self, *args)
        self.pty_handler = MixedPtyHandler
        
        
        # Call the base class to run the handler
        BaseRequestHandler.__init__(self, request, client_address, server)
    
    def setup(self):
        '''Setup the connection.'''
        log.debug( 'New request from address %s, port %d',  self.client_address )
        
        try:
            self.transport.load_server_moduli()
        except:
            log.exception( '(Failed to load moduli -- gex will be unsupported.)' )
            raise
        try:
            self.transport.add_server_key(self.host_key)
        except:
            if self.host_key is None:
                log.critical('Host key not set!  SSHHandler MUST define the host_key parameter.')
                raise NotImplementedError('Host key not set!  SSHHandler instance must define the host_key parameter.  Try host_key = paramiko_ssh.getRsaKeyFile("server_rsa.key").')
        
        try:
            # Tell transport to use this object as a server
            log.debug( 'Starting SSH server-side negotiation' )
            self.transport.start_server(server=self)
        except SSHException, e:
           log.warn('SSH negotiation failed. %s', e)
           raise
        
        # Accept any requested channels
        while True:
            channel = self.transport.accept(20)
            if channel is None:
                # check to see if any thread is running
                any_running = False
                for c, thread in self.channels.items():
                    if thread.is_alive():
                        any_running = True
                        break
                if not any_running:
                    break
            else:
                log.info( 'Accepted channel %s', channel )
开发者ID:4sp1r3,项目名称:hontel,代码行数:70,代码来源:paramiko_ssh.py


注:本文中的paramiko.Transport.load_server_moduli方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。