예제 #1
0
    def test_failure_getting_authorized_keys(self):
        """
        If L{IAuthorizedKeysDB.getAuthorizedKeys} raises an exception,
        L{SSHPublicKeyChecker.requestAvatarId} fails with L{UnauthorizedLogin}
        """
        def fail(_):
            raise _DummyException()

        self.keydb = _KeyDB(fail)
        self.checker = SSHPublicKeyChecker(self.keydb)
        self.failureResultOf(self.checker.requestAvatarId(self.credentials),
                             UnauthorizedLogin)
        self.flushLoggedErrors(_DummyException)
예제 #2
0
    def makeService(self, options):
        """
        Construct a TCPServer from a factory defined in myproject.
        """
        _portal = portal.Portal(
            essftp.EssFTPRealm(essftp.FilePath(options['root']).path),
            options.get('credCheckers',
                        [SSHPublicKeyChecker(UNIXAuthorizedKeysFiles())]))

        if options['keyDirectory']:
            factory = OpenSSHFactory()
            factory.portal = _portal
            factory.dataRoot = options['keyDirectory']
            factory.moduliRoot = options['moduli']

        else:
            factory = ConchFactory(_portal)

        return internet.TCPServer(int(options["port"]), factory)
예제 #3
0
 def setUp(self):
     self.credentials = SSHPrivateKey(
         'alice', 'ssh-rsa', publicRSA_openssh, 'foo',
         Key.fromString(privateRSA_openssh).sign('foo'))
     self.keydb = _KeyDB(lambda _: [Key.fromString(publicRSA_openssh)])
     self.checker = SSHPublicKeyChecker(self.keydb)