def test_get_ssh_folder(self): try: fileoperations.get_ssh_folder() except OSError as ex: # If access is denied assume we are running on a limited environment if ex.errno == 13: pass
def _get_ssh_file(keypair_name): key_file = fileoperations.get_ssh_folder() + keypair_name if not os.path.exists(key_file): if os.path.exists(key_file + '.pem'): key_file += '.pem' else: raise NotFoundError(strings['ssh.filenotfound'].replace( '{key-name}', keypair_name)) return key_file
def _get_public_ssh_key(keypair_name): key_file = fileoperations.get_ssh_folder() + keypair_name if os.path.exists(key_file): file_name = key_file elif os.path.exists(key_file + '.pem'): file_name = key_file + '.pem' else: raise NotSupportedError(strings['ssh.filenotfound'].replace( '{key-name}', keypair_name)) try: stdout, stderr, returncode = exec_cmd( ['ssh-keygen', '-y', '-f', file_name]) if returncode != 0: raise CommandError('An error occurred while trying ' 'to get ssh public key') key_material = stdout return key_material except OSError: raise CommandError(strings['ssh.notpresent'])
def _generate_and_upload_keypair(keys): io.echo() io.echo(prompts['keypair.nameprompt']) unique = utils.get_unique_name('aws-eb', keys) keyname = io.prompt('Default is ' + unique, default=unique) file_name = fileoperations.get_ssh_folder() + keyname try: exitcode = subprocess.call( ['ssh-keygen', '-f', file_name, '-C', keyname]) except OSError: raise CommandError(strings['ssh.notpresent']) if exitcode == 0 or exitcode == 1: commonops.upload_keypair_if_needed(keyname) return keyname else: LOG.debug('ssh-keygen returned exitcode: ' + str(exitcode) + ' with filename: ' + file_name) raise CommandError('An error occurred while running ssh-keygen.')