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)
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)
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)
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)
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)
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)
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)