|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # -*- test-case-name: twisted.test.test_strcred -*-
- #
- # Copyright (c) Twisted Matrix Laboratories.
- # See LICENSE for details.
-
- """
- Cred plugin for ssh key login.
- """
-
-
- from zope.interface import implementer
-
- from twisted import plugin
- from twisted.cred.strcred import ICheckerFactory
-
- sshKeyCheckerFactoryHelp = """
- This allows SSH public key authentication, based on public keys listed in
- authorized_keys and authorized_keys2 files in user .ssh/ directories.
- """
-
-
- try:
- from twisted.conch.checkers import SSHPublicKeyChecker, UNIXAuthorizedKeysFiles
-
- @implementer(ICheckerFactory, plugin.IPlugin)
- class SSHKeyCheckerFactory:
- """
- Generates checkers that will authenticate a SSH public key
- """
-
- authType = "sshkey"
- authHelp = sshKeyCheckerFactoryHelp
- argStringFormat = "No argstring required."
- credentialInterfaces = SSHPublicKeyChecker.credentialInterfaces
-
- def generateChecker(self, argstring=""):
- """
- This checker factory ignores the argument string. Everything
- needed to authenticate users is pulled out of the public keys
- listed in user .ssh/ directories.
- """
- return SSHPublicKeyChecker(UNIXAuthorizedKeysFiles())
-
- theSSHKeyCheckerFactory = SSHKeyCheckerFactory()
-
- except ImportError:
- # if checkers can't be imported, then there should be no SSH cred plugin
- pass
|