Credenciales
El panel Credenciales es donde le das a una máquina (un espacio de trabajo, en el editor de ajustes) los secretos que necesita su agente — tokens de git, claves SSH, credenciales de nube, contraseñas de bases de datos — sin que esos secretos entren nunca en la VM. Cada valor se guarda cifrado en tu Mac. Dentro de la VM, el agente solo ve un sustituto (por ejemplo brm_…); cuando una solicitud sale de tu Mac, el proxy cambia el sustituto por el valor real, y solo para los hosts a los que pertenece esa credencial.
Esta página es la referencia campo por campo. El mecanismo — el límite de red, los sustitutos, la limitación por host, la refirma de AWS, la alerta de compromiso — se explica en Credenciales y el límite de red. Si una credencial necesita tu aprobación antes de usarse, y qué escrituras puede hacer, se configura en Salvaguardas.
Nota: Las claves de API y los inicios de sesión de los proveedores de modelos de los agentes de programación (Anthropic, OpenAI, xAI, Moonshot, z.ai, Bedrock, OpenRouter, servidores personalizados) no se configuran aquí. Están en Preferencias › Modelos, o en la sustitución Modelos propia de una máquina.
Identidad de Git
Los dos campos de arriba definen la identidad de autor que se escribe en ~/.gitconfig dentro de la VM:
- user.name — texto de ejemplo Tu Nombre.
- user.email — texto de ejemplo [email protected].
«Se escribe en ~/.gitconfig de la VM. Déjelo en blanco para mantener los valores por defecto de git.» No son secretos y no se sustituyen. Los cambios se aplican a una máquina en ejecución al pulsar Guardar.
Archivos de configuración importados
Si la configuración inicial importó archivos de configuración de tu Mac a esta máquina, aparecen en Archivos de configuración importados: cada uno como ~/<ruta>, con cuántos ajustes contiene, cuántos secretos se dejaron fuera y qué ajustes se desactivaron. «Se copian tal cual en la VM. Los secretos se excluyeron: entran como credenciales arriba, así que la VM solo ve uno falso.» El botón de menos quita un archivo de la máquina.
La lista de credenciales
Debajo, el panel enumera solo las credenciales que esta máquina tiene realmente, bajo encabezados de categoría:
| Encabezado | Qué aparece debajo |
|---|---|
| GIT | Tokens de acceso personal para GitHub, GitLab, Bitbucket o forjas autoalojadas. |
| CLOUD | AWS, DigitalOcean, Linear, Twilio, contextos de Kubernetes, registros de contenedores. |
| DATABASES | Endpoints de MongoDB, ClickHouse y Elasticsearch. |
| SSH | La clave propia de la máquina y cualquier clave que hayas importado. |
| OTHER | Reglas de sustitución «Other API key». |
Cada fila muestra un icono, un nombre y el host o los hosts a los que se aplica la credencial. Su menú ⋯ (o un clic en la fila) ofrece Editar… y Quitar. No se elimina nada del disco hasta que pulsas Guardar.
También puede aparecer un grupo AGENTS, en máquinas que aún conservan una clave de API de agente propia de antes de que los proveedores de modelos pasaran a Modelos. Esas filas no tienen Quitar; su menú ofrece Editar en Modelos…, que abre Preferencias › Modelos (en las propias Preferencias, o en el editor de una máquina remota, cambia al panel Modelos de ese editor).
Sin credenciales, el panel muestra Aún no hay credenciales — «Añade una clave de API, un token o una clave SSH, o importa un archivo env. Los valores reales se quedan en tu Mac; la VM solo tiene un señuelo.»
Añadir una credencial
Agregar credencial abre una lista de tipos de credencial; cada uno abre su propia hoja de edición, que se cierra con Listo:
| Tipo | Subtítulo |
|---|---|
| Git token | Token de acceso personal para GitHub, GitLab o Bitbucket |
| SSH key | Importar una clave privada, o usar la clave propia del espacio de trabajo |
| AWS credentials | Claves IAM estáticas o SSO — firmadas con SigV4 en la red |
| DigitalOcean token | Token de acceso personal de doctl / API |
| Linear API key | Clave de API personal de Linear |
| Twilio API key | SID de cuenta/clave de API + secreto — HTTP Basic en la red |
| Kubernetes | Un contexto de clúster (token, certificado de cliente o plugin exec) |
| Container registry | Inicio de sesión en un registro para Docker Hub, ghcr.io y otros |
| Database | MongoDB Data API, ClickHouse o Elasticsearch |
| Other API key | Cualquier otro token — tú eliges la variable de entorno y el host o los hosts |
Las claves de API de agentes (Anthropic, OpenAI, xAI, Moonshot) no están en esta lista: se configuran en Preferencias › Modelos.
Importar un archivo env
Importar archivo env… lee credenciales de un archivo .env existente o de un ~/.bashrc. El analizador lee líneas KEY=VALUE y export KEY=VALUE, quita las comillas y los # comentarios del final de línea, y conserva la última asignación de un nombre repetido. Nunca ejecuta un shell: un valor que necesitaría expansión ($VAR, $(…)) se omite en lugar de importarse mal, así que se puede usar un .bashrc real sin riesgo.
Las variables aparecen en una hoja de revisión, Import from nombre del archivo, con todos los valores ocultos.
Las variables RECONOCIDOS se asignan a un tipo de credencial:
| Variable(s) | Se convierte en |
|---|---|
GH_TOKEN, GITHUB_TOKEN | Token de GitHub (pide un Nombre de usuario de Git) |
GITLAB_TOKEN, GLAB_TOKEN | Token de GitLab (pide un Nombre de usuario de Git) |
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN | Claves estáticas de AWS |
DIGITALOCEAN_ACCESS_TOKEN, DIGITALOCEAN_TOKEN, DO_TOKEN | Token de DigitalOcean |
LINEAR_API_KEY | Clave de API de Linear |
TWILIO_ACCOUNT_SID, TWILIO_API_KEY_SID, TWILIO_API_KEY | SID de Twilio |
TWILIO_AUTH_TOKEN, TWILIO_API_SECRET, TWILIO_API_KEY_SECRET | Secreto de Twilio |
ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, MOONSHOT_API_KEY, KIMI_API_KEY | La clave de API del proveedor correspondiente en los ajustes de modelos: Anthropic, OpenAI, xAI o Moonshot |
Las claves de agentes van donde los agentes toman las claves de sus proveedores. En este Mac, van a Preferencias › Modelos, de modo que todas las máquinas que heredan los ajustes globales las reciben, y se guardan en cuanto importas, como cualquier cambio en ese tablero. Para una máquina remota editada desde una ventana de réplica, van a la sustitución Modelos propia de esa máquina y se guardan con Guardar; en las Preferencias de un Mac remoto, a los ajustes globales de ese Mac. Una clave se marca como Already configured cuando el proveedor ya tiene una.
Una variable que coincide con algo que la máquina ya tiene se marca como Already configured — check to overwrite. y queda sin marcar, para que una nueva importación nunca sustituya un secreto sin avisar.
Las variables NO RECONOCIDOS pueden importarse como entradas Other API key. Cada una tiene un campo Host(s) — los hosts en los que se sustituye el sustituto, separados por comas; en blanco significa cualquier host. El nombre de la variable pasa a ser tanto el nombre de la entrada como la variable con la que se exporta el sustituto.
Un valor que es una referencia de 1Password (op://vault/item/field) se importa como una Other API key que guarda la referencia, no el secreto (consulta Otras claves de API).
El botón dice Import N credentials. Importar añade la selección al panel; pulsa Guardar para conservarla.
Claves SSH
Las claves privadas nunca entran en la VM: las firmas las sirve un ssh-agent en el Mac a través de un socket virtual privado, así que la VM puede pedir una firma pero no puede leer la clave.
- La clave ed25519 propia de la máquina. Las máquinas nuevas tienen marcado Generar un par de claves ed25519 (salvo que la plantilla de valores predeterminados ya aporte una clave). Una vez existe la clave, el editor muestra su clave pública con Copiar y Abrir la página de claves de GitHub, y un interruptor Regenerar. Justo después de generar una clave nueva, la app la muestra para que puedas añadirla a GitHub.
- Claves SSH importadas. Importar… abre un selector de archivos y luego pide una Etiqueta y, si la clave está cifrada, una Frase de contraseña (guardada en el llavero de macOS). Se admiten claves RSA, ed25519 y ecdsa.
- Claves de un agente del host. Desde el agente del host… lista las claves que guarda un ssh-agent de tu Mac — para claves que no se pueden copiar como archivo, como una YubiKey detrás de gpg-agent, Secretive o 1Password. Elige el socket del agente (vacío significa el
SSH_AUTH_SOCKde la app; el menú ofrece los agentes encontrados en este Mac, p. ej.~/.gnupg/S.gpg-agent.ssh), haz clic en Cargar y marca las claves que quieras añadir. Solo esas claves se muestran a la máquina.
Los cambios en las claves SSH se aplican cuando la máquina se reinicia.
Tokens de Git (GitHub, GitLab, Bitbucket)
Divididos en los grupos GitHub, GitLab y Bitbucket. Añadir token añade una fila con un Host, un Nombre de usuario y un Token de acceso personal (con un botón para mostrarlo y un enlace a la página de tokens de la forja). El host puede apuntar a github.com, gitlab.com o una instancia autoalojada. El sustituto se escribe en ~/.git-credentials y en la configuración de gh / glab; gh y glab también leen GH_TOKEN / GITLAB_TOKEN.
Linear
Una clave de API personal (texto de ejemplo con la forma lin_api_…, con un enlace a los ajustes de API de Linear). Se exporta como LINEAR_API_KEY y solo se sustituye en las solicitudes a linear.app y sus subdominios. Una clave de Linear es también lo que necesitan las automatizaciones activadas por Linear.
Twilio
«Account SID + Auth Token from console.twilio.com (or an API Key SID SK… + its secret).» Dos campos:
- Account SID (AC…) or API Key SID (SK…) — el SID es un identificador que viaja en las URL de las solicitudes, así que no se trata como secreto; la VM lo recibe tal cual en
TWILIO_ACCOUNT_SID. - Auth Token / API Key secret — la VM recibe un sustituto en
TWILIO_AUTH_TOKEN; el proxy pone el real en las solicitudes atwilio.com.
Un botón junto al secreto abre la consola de Twilio. El editor también tiene la casilla Requerir aprobación para usar, la misma que Salvaguardas muestra para cada credencial.
Kubernetes
Una fila por contexto de clúster. Bromure escribe en la VM un ~/.kube/config que apunta kubectl al proxy; la identidad real se queda en el Mac. Cada contexto tiene un nombre, una URL del servidor, un certificado de CA opcional (PEM), un Espacio de nombres y un método de autenticación:
- Token de portador — se sustituye en la red.
- Certificado de cliente — el certificado y la clave reales los usa el Mac para la conexión con el servidor; la VM recibe uno desechable.
- Plugin exec — un Comando, unos Args y un intervalo Actualizar (1–60 minutos). El plugin se ejecuta en el Mac y el token nuevo se sustituye;
kubectlen la VM nunca lo ejecuta.
Importar archivo… lee un kubeconfig existente en una fila por contexto; Añadir contexto añade uno a mano. Los clústeres que creas con el propio Bromure se gestionan aparte — consulta Clústeres de Kubernetes y registros. Un contexto añadido o editado con la máquina en marcha funciona al Guardar, incluidos la CA de su clúster y su certificado de cliente; la app sigue ofreciendo un reinicio.
DigitalOcean
Un token de acceso personal (texto de ejemplo con la forma dop_v1_…). Se exporta como DIGITALOCEAN_ACCESS_TOKEN y se escribe en la configuración de doctl, así que no hace falta doctl auth init. Se sustituye en las solicitudes a digitalocean.com, incluida la forma de autenticación Basic que usan docker login / doctl registry login contra registry.digitalocean.com.
AWS
Para la CLI aws, los SDK, terraform y herramientas similares. El secreto real nunca llega a la VM: el Mac vuelve a firmar cada solicitud con la clave real, y una solicitud que esquiva el proxy es rechazada por AWS (InvalidSignatureException). Un control Método de autenticación permite elegir:
- Claves estáticas — ID de clave de acceso, Clave de acceso secreta, un Token de sesión opcional («Opcional — solo STS») y una Región predeterminada, con Abrir la página de credenciales de IAM.
- SSO / Identity Center — concede acceso a tu carpeta
~/.awsy elige un Perfil SSO de tu~/.aws/config. Las credenciales temporales se obtienen en el Mac, que ejecutaaws sso loginen tu navegador cuando hace falta. (En el cliente para iPhone, iPad y Vision Pro escribes el nombre del perfil.)
Las credenciales de AWS de una máquina también firman las solicitudes a Amazon Bedrock cuando Bedrock está activado en Modelos sin una clave de API de Bedrock. Los cambios de AWS se aplican cuando la máquina se reinicia.
Registros de contenedores
Inicios de sesión por registro para docker pull / docker push. El ~/.docker/config.json de la VM contiene un sustituto, y el proxy pone la contraseña real en las solicitudes a ese registro. El menú Añadir ofrece Docker Hub (docker.io), GitHub Container Registry (ghcr.io), GitLab Container Registry (registry.gitlab.com), Quay (quay.io), Otro host… e Importar config.json… (las entradas cuya contraseña vive en un asistente de credenciales o un llavero se omiten y se cuentan). Cada fila tiene un Host, un Nombre de usuario y una Contraseña o token.
Bases de datos (MongoDB, ClickHouse, Elasticsearch)
Una fila por endpoint HTTPS, agrupadas por motor. Cada una tiene un Nombre opcional, un Host (que también delimita la política de escritura del endpoint), un método de Autenticación — Username + password, Clave de API o Token de portador (MongoDB usa clave de API de forma predeterminada, los demás usuario + contraseña) —, un Nombre de usuario para la autenticación por contraseña, el Secreto y Variable(s) de entorno: los nombres, separados por comas, con los que se exporta el sustituto. El sustituto se reemplaza dondequiera que aparezca: cabecera, query string o cuerpo.
Otras claves de API
Para cualquier servicio que Bromure no gestione por sí mismo. Cada entrada es una regla de sustitución:
- Nombre — una etiqueta para ti (texto de ejemplo «e.g. Stripe (sandbox)»).
- Secreto real — la clave (texto de ejemplo
sk_live_…). Puedes pegar en su lugar una referencia de 1Password (op://vault/item/field): solo se guarda la referencia, y Bromure obtiene el secreto con la CLIopde 1Password al arrancar y lo actualiza cada 2 minutos. Un enlace Obtener la CLI de 1Password ayuda si no está instalada. - Variable de entorno — donde el agente encuentra el sustituto (texto de ejemplo
STRIPE_API_KEY). Déjala en blanco para no exportar nada. - API host(s) (optional) — nombres de host, separados por comas, sin
https://ni ruta. La clave real solo se sustituye en las solicitudes a estos hosts y sus subdominios. En blanco permite cualquier host.
Advertencia: Una entrada sin host se sustituye en cualquier host y no la cubre la alerta de compromiso: eso es lo que significa «cualquier host». Para mantener bajo control un secreto sin limitar, dale un host o activa para él Requerir aprobación para usar en Salvaguardas.
Perfiles de proveedor de OpenShell
En una máquina cuyo motor de sandbox es OpenShell + Sentry, el panel termina con una sección OpenShell provider profiles (solo en el Mac).
Attach provider profile… importa un perfil de proveedor de OpenShell (el YAML o JSON que escribe openshell profile export). Una hoja pide un Instance name (por omisión, el id del perfil) y un valor para cada una de las credenciales del perfil (las obligatorias están marcadas con *); Attach las añade. Cada valor se convierte en una credencial de esta máquina llamada instancia · credencial, ligada a los hosts y rutas del perfil, bajo las variables de entorno que nombra el perfil. Los endpoints del perfil se añaden como regla, para que sean alcanzables. Bromure guarda los valores reales en el Mac y da sustitutos a la VM, como con cualquier credencial. El botón de la papelera desconecta un perfil y elimina sus credenciales. Un perfil que no declara endpoints se rechaza, ya que sus credenciales no tendrían dónde usarse. Las credenciales que hacen refresh o usan un token_grant se usan como el valor estático que escribas.
Use OpenShell credential placeholders (desactivado por omisión) hace que el agente vea openshell:resolve:env:NAME en su entorno en lugar de los tokens de aspecto real de Bromure, para las credenciales que esta máquina pasa como variables de entorno — como lo haría bajo OpenShell. El proxy pone el valor real en las cabeceras de las peticiones, y en los cuerpos de las peticiones o los mensajes WebSocket solo donde un endpoint define request_body_credential_rewrite o websocket_credential_rewrite. Cada credencial sigue funcionando solo en sus propios hosts. Las credenciales enviadas en otro formato (inicios de sesión de git y de registros, inicios de sesión de suscripciones) conservan los sustitutos de Bromure. Algunas herramientas comprueban el formato de un token y pueden rechazar un marcador. Surte efecto en el siguiente arranque de la VM.
Cuándo se aplican los cambios
La identidad de git, los tokens de git, Linear, Twilio, DigitalOcean, los registros de contenedores, las bases de datos y las demás claves de API se aplican a una máquina en ejecución al pulsar Guardar. Las claves SSH y las credenciales de AWS necesitan un reinicio; la app lo ofrece al guardar. Los contextos de Kubernetes funcionan al guardar, y la app también ofrece un reinicio. Los marcadores de credenciales de OpenShell surten efecto en el siguiente arranque de la VM.
Todo lo de este panel se guarda en el secrets.enc cifrado de la máquina, nunca en profile.json.
Referencia de ajustes
| Editor | Qué contiene |
|---|---|
| Identidad de Git | user.name / user.email para ~/.gitconfig; no es secreto. |
| SSH key | La clave de la máquina y las claves importadas; las sirve el ssh-agent del Mac. |
| Git token | Usuario y token por host para GitHub, GitLab, Bitbucket. |
| Linear API key | LINEAR_API_KEY, sustituida en linear.app. |
| Twilio API key | TWILIO_ACCOUNT_SID tal cual, TWILIO_AUTH_TOKEN como sustituto, sustituido en twilio.com. |
| Kubernetes | Contextos (token, certificado de cliente, plugin exec). |
| DigitalOcean token | DIGITALOCEAN_ACCESS_TOKEN y configuración de doctl. |
| AWS credentials | Claves estáticas o SSO; el Mac vuelve a firmar las solicitudes. También firma Bedrock. |
| Container registry | Inicios de sesión por registro; sustituto en ~/.docker/config.json. |
| Database | Secreto por endpoint, exportado con las variables que indiques. |
| Other API key | Secreto o referencia de 1Password, variable, hosts opcionales. |
| Importar archivo env… | Importación masiva desde .env o ~/.bashrc. |
Capítulos relacionados
- Credenciales y el límite de red — el modelo de seguridad detrás de este panel.
- Salvaguardas — las políticas de aprobación y escritura de estas credenciales.
- Modelos y Modelos y proveedores — las claves e inicios de sesión de los proveedores de modelos.
- Referencia de ajustes — todos los paneles de un vistazo.