示例#1
0
 def _pkey_auth(self, pkey_file, password=None):
     pkey = import_privkey_file(
         pkey_file, passphrase=password if password is not None else '')
     if self.cert_file is not None:
         logger.debug(
             "Certificate file set - trying certificate authentication")
         self._import_cert_file(pkey)
     self.session.userauth_publickey(pkey)
示例#2
0
    def _userauth_publickey_fromfile(self, key_file):
        """Import a private key file.

        :param key_file: Fully qualified path to an ssh key file.
        :type key_file: String
        """

        key = ssh_key.import_privkey_file(key_file)
        self.session.userauth_publickey(key)
示例#3
0
 def test_key_auth(self):
     self.assertEqual(self.session.connect(), 0)
     self.assertRaises(KeyImportError, import_pubkey_file, self.user_key)
     key = import_pubkey_file(self.user_pub_key)
     self.assertIsInstance(key, SSHKey)
     self.assertEqual(self.session.userauth_try_publickey(key), 0)
     # Private key as public key import error
     self.assertRaises(KeyImportError, import_privkey_file,
                       self.user_pub_key)
     pkey = import_privkey_file(self.user_key)
     self.assertEqual(self.session.userauth_publickey(pkey), 0)
示例#4
0
 def test_cert_auth(self):
     self.assertEqual(self.session.connect(), 0)
     cert_key = import_cert_file(self.user_cert_file)
     self.assertIsInstance(cert_key, SSHKey)
     key_type = cert_key.key_type()
     self.assertIsInstance(key_type, RSACert01Key)
     cert_priv_key = import_privkey_file(self.user_ca_key)
     copy_cert_to_privkey(cert_key, cert_priv_key)
     self.assertEqual(self.session.userauth_try_publickey(cert_key), 0)
     self.assertEqual(self.session.userauth_publickey(cert_priv_key), 0)
     chan = self.session.channel_new()
     self.assertIsInstance(chan, Channel)
示例#5
0
 def setUp(self):
     self.host = '127.0.0.1'
     self.port = 2222
     self.cmd = 'echo me'
     self.resp = u'me'
     self.user_key = PKEY_FILENAME
     self.user_pub_key = PUB_FILE
     self.user = pwd.getpwuid(os.geteuid()).pw_name
     # sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     # sock.connect((self.host, self.port))
     # self.sock = sock
     self.session = Session()
     self.session.options_set(options.HOST, self.host)
     self.session.options_set_port(self.port)
     self.session.options_set(options.USER, self.user)
     self.pkey = import_privkey_file(self.user_key)
示例#6
0
 def setUp(self):
     self.host = '127.0.0.1'
     self.port = 2222
     self.cmd = 'echo me'
     self.resp = u'me'
     self.user_key = PKEY_FILENAME
     self.user_pub_key = PUB_FILE
     self.user_ca_key = USER_CERT_PRIV_KEY
     self.user_cert_file = USER_CERT_FILE
     self.user = USER
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     sock.connect((self.host, self.port))
     self.sock = sock
     self.session = Session()
     self.session.options_set(options.HOST, self.host)
     self.session.options_set_port(self.port)
     self.session.options_set(options.USER, self.user)
     self.session.set_socket(sock)
     self.pkey = import_privkey_file(self.user_key)
示例#7
0
 def _pkey_auth(self, pkey, password=None):
     password = b'' if not password else password
     pkey = import_privkey_file(pkey, passphrase=password)
     self.session.userauth_publickey(pkey)