En esta página, se describe cómo habilitar el acceso interactivo a la consola en serie de una instancia para depurar problemas de inicio y red, solucionar problemas de funcionamiento incorrecto, interactuar con GRand Unified Bootloader (GRUB) y realizar otras tareas de solución de problemas.
Una instancia de máquina virtual (VM) tiene cuatro puertos en serie virtuales. Interactuar con un puerto en serie es similar a usar una ventana de la terminal, en la que la entrada y salida están totalmente en modo de texto y no hay interfaz gráfica ni asistencia de mouse. El sistema operativo de la instancia, el BIOS y otras entidades a nivel del sistema a menudo escriben la salida en los puertos en serie y pueden aceptar entradas, como comandos o respuestas a las indicaciones. Por lo general, estas entidades a nivel del sistema usan el primer puerto en serie (puerto 1) que generalmente se denomina consola en serie.
Si solo necesitas ver la salida del puerto en serie sin emitir comandos a la consola en serie, puedes llamar al método getSerialPortOutput o usar Cloud Logging para leer la información que la instancia escribió en su puerto en serie; consulta Visualiza los registros del puerto en serie.
Sin embargo, si tienes problemas para acceder a la instancia mediante SSH o necesitas solucionar problemas de una instancia que no está iniciada por completo, puedes habilitar el acceso interactivo a la consola en serie, que te permite conectarte y, también, interactuar con cualquiera de los puertos en serie de la instancia. Por ejemplo, puedes ejecutar comandos directamente y responder a las solicitudes en el puerto en serie.
Cuando habilitas o inhabilitas el puerto en serie, puedes usar cualquier valor booleano que acepte el servidor de metadatos. Para obtener más información, consulta Valores booleanos.
Antes de comenzar
- 
  
  Si aún no lo hiciste, configura la autenticación.
  La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando: gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada. 
- Set a default region and zone.
 RESTPara usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a gcloud CLI. Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando: gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada. Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud . Habilita el acceso interactivo en la consola en serieHabilita el acceso interactivo a la consola en serie para las instancias de VM individuales o un proyecto completo. Habilita el acceso para un proyectoCuando habilitas el acceso interactivo de la consola en serie en un proyecto, se habilita el acceso para todas las instancias de VM que forman parte de ese proyecto. De forma predeterminada, el acceso interactivo al puerto en serie está inhabilitado. También puedes inhabilitarlo de forma explícita si estableces la clave serial-port-enableenFALSE. En cualquier caso, la configuración por instancia anula la configuración a nivel de proyecto o la predeterminada.Console- En la consola de Google Cloud , ve a la página Metadatos.
- Haz clic en Editar para editar entradas de metadatos.
- Agrega una entrada nueva que use la clave serial-port-enable y el valor TRUE.
- Guarda los cambios.
 gcloudCon Google Cloud CLI, escribe el comando project-info add-metadatade la siguiente manera:gcloud compute project-info add-metadata \ --metadata serial-port-enable=TRUERESTEn la API, realiza una solicitud al método projects().setCommonInstanceMetadatay proporciona la claveserial-port-enablecon un valor deTRUE, como se indica a continuación:{ "fingerprint": "FikclA7UBC0=", "items": [ { "key": "serial-port-enable", "value": "TRUE" } ] }Habilita el acceso para una instancia de VMHabilita el acceso interactivo a la consola en serie para una instancia específica. Una configuración por instancia, si existe, anula cualquier configuración a nivel de proyecto. También puedes inhabilitar el acceso para una instancia específica si estableces serial-port-enableenFALSE, en lugar deTRUE, incluso si el acceso está habilitado a nivel del proyecto. De manera similar, puedes habilitar el acceso para una o más instancias, incluso si está inhabilitado en el proyecto, de forma explícita o predeterminada.Console- En la Google Cloud consola, ve a la página Instancias de VM.
- Haz clic en la instancia para la que deseas habilitar el acceso.
- Haz clic en Editar.
- En la sección Acceso remoto, activa o desactiva la casilla de verificación Habilitar la conexión a los puertos en serie.
- Guarda los cambios.
 gcloudCon Google Cloud CLI, escribe el comando instances add-metadatay reemplazainstance-namepor el nombre de tu instancia.gcloud compute instances add-metadata instance-name \ --metadata serial-port-enable=TRUERESTEn la API, realiza una solicitud al método instances().setMetadatacon la claveserial-port-enabley un valor deTRUE, de la siguiente manera:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance/setMetadata { "fingerprint": "zhma6O1w2l8=", "items": [ { "key": "serial-port-enable", "value": "TRUE" } ] }Configura la consola en serie para una instancia de Bare MetalPara las instancias de Bare Metal, aumenta la tasa de bits, también conocida como tasa de baudios, de la consola en serie a 115,200 bps (~11.5 KB/s). Si usas una velocidad más lenta, el resultado será una salida de la consola distorsionada o faltante. La configuración del bootloader varía entre los sistemas operativos y sus versiones de OS. Consulta la documentación del distribuidor del SO para obtener instrucciones. Si modificas la tasa de bits en la línea de comandos para la sesión actual, usa un comando similar al siguiente: console=ttyS0,115200Si modificas la configuración de GRUB, usa un comando similar al siguiente: serial --speed=115200Asegúrate de actualizar la configuración real del bootloader. Esto se puede hacer con update-grub,grub2-mkconfigo un comando similar.Conexión a una consola en serieCompute Engine ofrece puertas de enlace de consola en serie regionales para cada región de Google Cloud. Después de habilitar el acceso interactivo para la consola en serie de una VM, puedes conectarte a una consola en serie regional. La consola en serie autentica a los usuarios con claves SSH. En particular, debes agregar la llave SSH pública a los metadatos del proyecto o de la instancia y almacenar la clave privada en la máquina local desde la que deseas conectarte. Gcloud CLI y la consola de Google Cloud agregan automáticamente claves SSH al proyecto. Si usas un cliente de terceros, es posible que debas agregar llaves SSH de forma manual. Si usas un cliente de terceros, también puedes validar la conexión con las claves de host de la consola en serie. Cuando usas Google Cloud CLI para conectarte, la autenticación de la clave de host se realiza automáticamente en tu nombre. ConsolePara conectarte a la consola en serie regional de una VM, haz lo siguiente: - En la Google Cloud consola, ve a la página Instancias de VM.
- Haz clic en la instancia a la que deseas conectarte.
- En Detalles, haz clic en Conectar a la consola en serie para conectarte al puerto predeterminado (puerto 1).
- Si deseas conectarte a otro puerto en serie, haz clic en la flecha hacia abajo junto al botón Conectar a consola en serie y cambia el número de puerto según corresponda.
- Para las instancias de Windows, abre el menú desplegable junto al botón y conéctate al Puerto 2 para acceder a la consola en serie.
 gcloudPara conectarte a la consola en serie regional de una VM, usa el comando gcloud compute connect-to-serial-port:gcloud compute connect-to-serial-port VM_NAME \ --port=PORT_NUMBERReemplaza lo siguiente: - VM_NAME: El nombre de la VM a cuya consola en serie deseas conectarte.
- PORT_NUMBER: el número de puerto que deseas conectar. Para las VM de Linux, usa- 1. En las VMs de Windows, usa- 2. Para obtener más información sobre los números de puerto, consulta la sección Descripción de la numeración de puertos en serie.
 Otros clientes SSHPuedes conectarte a la consola en serie de una instancia con otros clientes SSH de terceros, siempre y cuando el cliente te permita conectarte al puerto TCP 9600. Antes de conectarte, puedes validar la conexión con las claves de host de la consola en serie. Para conectarte a la consola en serie regional de una VM, ejecuta uno de los siguientes comandos, según el SO de la VM: - Para conectarte a una VM de Linux, haz lo siguiente: - ssh -i PRIVATE_SSH_KEY_FILE -p 9600 PROJECT_ID.ZONE.VM_NAME.USERNAME.OPTIONS@REGION-ssh-serialport.googleapis.com 
- Para conectarte a una VM de Windows, sigue estos pasos: - ssh -i PRIVATE_SSH_KEY_FILE -p 9600 PROJECT_ID.ZONE.VM_NAME.USERNAME.OPTIONS.port=2@REGION-ssh-serialport.googleapis.com 
 Reemplaza lo siguiente: - PRIVATE_SSH_KEY_FILE: Es la clave SSH privada de la instancia.
- PROJECT_ID: el ID del proyecto para esta instancia de VM
- ZONE: Es la zona de la instancia de VM.
- REGION: Es la región de la instancia de VM.
- VM_NAME: El nombre de la instancia de VM
- USERNAME: el nombre de usuario que usas para conectarte a la instancia (por lo general, este es el nombre de usuario en tu máquina local)
- OPTIONS: opciones adicionales que puedes especificar para esta conexión (por ejemplo, puedes especificar un puerto en serie determinado y cualquier opción avanzada. El número de puerto puede ser del 1 al 4, inclusive. Para obtener más información sobre los números de puerto, consulta la sección Descripción de la numeración de puertos en serie. Si se omite, te conectarás al puerto en serie 1)
 Si tienes problemas para conectarte mediante un cliente SSH de terceros, puedes ejecutar el comando gcloud compute connect-to-serial-portcon la opción de línea de comandos--dry-runpara ver el comando SSH que se habría ejecutado de forma automática. Luego, puedes comparar las opciones con el comando que estás usando.Valida las conexiones de clientes SSH externosCuando usas un cliente SSH de terceros que no es Google Cloud CLI, te recomendamos que verifiques que estás protegido contra el robo de identidad o los ataques de intermediarios si compruebas la clave de host SSH del puerto en serie de Google. Para configurar tu sistema de modo que verifique la clave del host SSH, completa los siguientes pasos: - Descarga la clave de host SSH para la consola en serie que usarás: - En el caso de las conexiones regionales, la clave de host SSH para una región se puede encontrar en - https://www.gstatic.com/vm_serial_port_public_keys/REGION/REGION.pub.
- Para conexiones globales, descarga la clave de host SSH del puerto en serie de Google. 
 
- Abre tu archivo de hosts conocidos; por lo general, se ubica en - ~/.ssh/known_hosts.
- Agrega el contenido de la clave de host SSH con el nombre de host del servidor antepuesto a la clave. Por ejemplo, si la clave del servidor us-central1 contiene la línea - ssh-rsa AAAAB3NzaC1yc..., entonces- ~/.ssh/known_hostsdebería tener una línea como la siguiente:- [us-central1-ssh-serialport.googleapis.com]:9600 ssh-rsa AAAAB3NzaC1yc... 
 Por motivos de seguridad, a veces Google puede cambiar la clave de host SSH del puerto en serie de Google. Si el cliente no puede autenticar la clave del servidor, finaliza inmediatamente el intento de conexión y completa los pasos anteriores para descargar una nueva clave de host SSH del puerto en serie de Google. Si después de actualizar la clave de host, continúas recibiendo un error de autenticación de host de tu cliente, detiene los intentos de conexión al puerto en serie y comunícate con la Atención al cliente de Google. No proporciones ninguna credencial a través de una conexión en la que haya fallado la autenticación del host. Desconéctate de la consola en seriePara desconectarte de la consola en serie, sigue las instrucciones del método que usaste para conectarte. ConsoleEn la consola Google Cloud , desconéctate de la consola en serie de la siguiente manera: - Cierra la ventana o pestaña del navegador que contiene la conexión de la consola en serie.
 gcloudEn Google Cloud CLI, desconéctate de la consola en serie de la siguiente manera: - Presiona la tecla ENTER.
- Escribe ~.(virgulilla, seguido de un punto).
 Otros clientes SSHEn otros clientes SSH, desconéctate de la consola en serie de la siguiente manera: - Presiona la tecla ENTER.
- Escribe ~.(virgulilla, seguido de un punto).
 En Google Cloud CLI o con SSH, puedes descubrir otros comandos escribiendo ~?. También puedes examinar la página del manual para SSH con el siguiente comando:man ssh No intentes desconectarte con ninguno de los siguientes métodos: - La combinación de teclas - CTRL+ALT+DELETEo combinaciones similares. Esto no funciona porque la consola en serie no reconoce combinaciones de teclado de computadoras de escritorio.
- El comando - exito- logoutno funciona porque el invitado no conoce ninguna conexión de red o módem. El uso de este comando hace que la consola se cierre y se vuelva a abrir, y permanezcas conectado a la sesión. Si deseas habilitar los comandos- exity- logoutpara la sesión, configura la opción- on-dtr-low.
 Conéctate a una consola en serie con un mensaje de accesoSi estás intentando solucionar un problema con una instancia que se inició por completo, o un problema que ocurre después de que la VM se inició más allá del modo de usuario único, es posible que se te solicite información de acceso cuando intentes acceder a la consola en serie. De forma predeterminada, las imágenes del sistema de Linux que proporciona Google no están configuradas para permitir accesos basados en contraseña de usuarios locales. Sin embargo, las imágenes de Windows que proporciona Google están configuradas para permitir accesos basados en contraseña de usuarios locales. Si tu VM ejecuta una imagen que está preconfigurada con accesos al puerto en serie, debes configurar una contraseña local en la VM para poder acceder a la consola en serie, si se solicita. Puedes configurar una contraseña local después de conectarte a la VM o mediante una secuencia de comandos de inicio. Configura una contraseña local mediante una secuencia de comandos de inicioPuedes usar una secuencia de comandos de inicio para configurar una contraseña local que te permita conectarte a la consola en serie durante o después de la creación de la VM. Para configurar una contraseña local en una VM existente, selecciona una de las siguientes opciones: Linux- En la Google Cloud consola, ve a la página Instancias de VM. 
- En la columna Nombre, haz clic en el nombre de la VM para la que deseas agregar una contraseña local. - Se abrirá la página de detalles de VM. 
- Haz clic en Editar. - Se abrirá la página para editar los detalles de la VM. 
- En la sección Metadatos > Automatización, haz lo siguiente: - Si la VM tiene una secuencia de comandos de inicio existente, quítala y almacénala en un lugar seguro. 
- Agrega la siguiente secuencia de comandos de inicio: - #!/bin/bash useradd USERNAME echo 'USERNAME:PASSWORD' | chpasswd usermod -aG google-sudoers USERNAME- Reemplaza lo siguiente: - USERNAME: El nombre de usuario que deseas agregar
- PASSWORD: la contraseña del nombre de usuario. Como algunos sistemas operativos requieren una longitud y complejidad mínimas de la contraseña, especifica una contraseña de la siguiente manera:- Usa al menos 12 caracteres. 
- Usa una combinación de letras mayúsculas y minúsculas, números y símbolos. 
 
 
 
- Haz clic en Guardar. - Se abrirá la página de detalles de VM. 
- Haz clic en Restablecer. 
- Cuando se te solicite, ingresa tu información de acceso. 
 Windows- En la Google Cloud consola, ve a la página Instancias de VM. 
- En la columna Nombre, haz clic en el nombre de la VM para la que deseas agregar una contraseña local. - Se abrirá la página de detalles de VM. 
- Haz clic en Editar. - Se abrirá la página para editar los detalles de la VM. 
- En la sección Metadatos, haz lo siguiente: - Si la VM tiene una secuencia de comandos de inicio existente, almacénala en un lugar seguro y, luego, para borrarla, haz clic en Borrar elemento. 
- Haz clic en Agregar elemento. 
- En el campo Clave, escribe - windows-startup-script-cmd.
- En el campo Valor, lo siguiente: - net user USERNAME PASSWORD /ADD /Y net localgroup administrators USERNAME /ADD- Reemplaza lo siguiente: - USERNAME: El nombre de usuario que deseas agregar
- PASSWORD: la contraseña del nombre de usuario. Como algunos sistemas operativos requieren una longitud y complejidad mínimas de la contraseña, especifica una contraseña de la siguiente manera:- Usa al menos 12 caracteres. 
- Usa una combinación de letras mayúsculas y minúsculas, números y símbolos. 
 
 
 
- Haz clic en Guardar. - Se abrirá la página de detalles de VM. 
- Haz clic en Restablecer. 
- Cuando se te solicite, ingresa tu información de acceso. 
 Después de crear el usuario, reemplaza la secuencia de comandos de inicio por la que almacenaste en esta sección. Configura una contraseña local mediantepasswden la VMEn las siguientes instrucciones, se describe cómo configurar una contraseña local para un usuario en una VM para que pueda acceder a la consola en serie de esa VM con la contraseña especificada. - Conéctate a la VM. Reemplaza - instance-namepor el nombre de tu instancia.- gcloud compute ssh instance-name 
- En la VM, crea una contraseña local con el siguiente comando. Esta acción establece una contraseña para el usuario con el que accediste. - sudo passwd $(whoami) 
- Sigue las indicaciones para crear una contraseña. 
- A continuación, debes salir de la instancia y conectarte a la consola en serie. 
- Ingresa tu información de acceso cuando se te solicite. 
 Configura el acceso en otros puertos en serieLos mensajes de acceso se habilitan en el puerto 1 de forma predeterminada en todas las imágenes públicas de Linux que usan la administración de servicios de systemd. En el caso de las imágenes de Windows, las indicaciones de acceso están habilitadas en el puerto 2 de forma predeterminada y las administra el Device Manager. Sin embargo, el puerto 1 puede verse sobrecargado cuando registra datos y otra información que se imprime en el puerto. Como alternativa, puedes optar por habilitar una solicitud de acceso en otro puerto, como el puerto 2 (ttyS1), ejecutando el siguiente comando en tu VM:LinuxPara los sistemas operativos Linux que usan systemd, haz lo siguiente:- Habilita el servicio de forma temporal hasta el siguiente reinicio: - sudo systemctl start serial-getty@ttyS1.service 
- Habilita el servicio de forma permanente a partir del siguiente reinicio: - sudo systemctl enable serial-getty@ttyS1.service 
 WindowsPara sistemas operativos Windows: - Abre el símbolo del sistema como administrador 
- Cambia el puerto de EMS de COM2 a COM1: - bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:9600 
- Reiniciar la VM 
 Descripción de la numeración de puertos en serieCada instancia de máquina virtual tiene cuatro puertos en serie. Para mantener la coherencia con la API de getSerialPortOutput, cada puerto está numerado del 1 al 4. Linux y otros sistemas similares numeran sus puertos en serie del 0 al 3. Por ejemplo, en muchas imágenes del sistema operativo, los dispositivos correspondientes son/dev/ttyS0a/dev/ttyS3. Windows hace referencia a los puertos en serie comoCOM1aCOM4. Para conectarte a lo que Windows consideraCOM3y Linux considerattyS2, debes especificar el puerto 3. Usa la siguiente tabla para saber a qué puerto deseas conectarte.Puertos en serie de la instancia de máquina virtual Puertos en serie estándar de Linux Puertos COM de Windows 1/dev/ttyS0COM12/dev/ttyS1COM23/dev/ttyS2COM34/dev/ttyS3COM4Ten en cuenta que muchas imágenes de Linux usan el puerto 1 ( /dev/ttyS0) para registrar los mensajes de kernel y los programas del sistema.Envía una interrupción en serieLa función clave Magic SysRq te permite realizar tareas de bajo nivel, sin importar el estado del sistema. Por ejemplo, con la función clave Magic SysRq puedes sincronizar y desactivar sistemas de archivos, reiniciar la instancia y finalizar procesos. Para enviar un comando Magic SysRq mediante una interrupción serial simulada, sigue estos pasos: - Presiona la tecla ENTER.
- Escribe ~B(virgulilla, seguido deBmayúscula).
- Escribe el comando Magic SysRq.
 Visualiza registros de auditoría de la consola en serieCompute Engine proporciona registros de auditoría para realizar el seguimiento de quién se conectó y desconectó de la consola en serie de una instancia. Para ver los registros, debes tener permisos del Visor de registros o ser un visualizador o editor de proyecto. - En la Google Cloud consola, ve a la página Explorador de registros.
- Expande el menú desplegable y elige GCE VM Instance.
- En la barra de búsqueda, escribe ssh-serialport.googleapis.comy presiona Intro.
- Aparecerá una lista de registros de auditoría. Los registros describen las conexiones y desconexiones de una consola en serie. Expande cualquiera de las entradas para obtener más información.
 En cualquiera de los registros de auditoría, puedes hacer lo siguiente: - Expandir la propiedad protoPayload
- Buscar methodNamepara ver la actividad a la que se aplica este registro (ya sea una solicitud de conexión o desconexión). Por ejemplo, si este registro rastrea una desconexión de la consola en serie, el nombre del método dirá"google.ssh-serialport.v1.disconnect". Del mismo modo, un registro de conexión diría"google.ssh-serialport.v1.connect". Se registra una entrada de registro de auditoría al principio y al final de cada sesión en la consola en serie.
 Existen diferentes propiedades de registro de auditoría para distintos tipos de registro. Por ejemplo, los registros de auditoría relacionados con conexiones tienen propiedades específicas de los registros de conexión, mientras que los registros de auditoría para desconexiones tienen su propio conjunto de propiedades. Existen ciertas propiedades de registro de auditoría que también se comparten entre ambos tipos de registro. Todos los registros de la consola en serie En la siguiente tabla, se proporcionan propiedades de registro de auditoría y sus valores para todos los registros de la consola en serie: Propiedad Valor requestMetadata.callerIpIndica la dirección IP y el número de puerto desde el que se originó la conexión. serviceNamessh-serialport.googleapis.comresourceNameIndica una string que contiene el ID del proyecto, la zona, el nombre de la instancia y el número de puerto en serie para señalar a qué consola en serie pertenece. Por ejemplo, projects/myproject/zones/us-east1-a/instances/example-instance/SerialPort/2es el puerto 2, también conocido como COM2 o /dev/ttyS1, para la instanciaexample-instance.resource.labelsIndica las propiedades que identifican el ID de la instancia, la zona y el ID del proyecto. timestampIndica una marca de tiempo que muestra cuándo comenzó o terminó la sesión. severityNOTICEoperation.idIndica una string de ID que identifica la sesión de forma exclusiva; puedes usarla para asociar una entrada de desconexión con la entrada de conexión correspondiente. operation.producerssh-serialport.googleapis.comRegistros de conexión En la siguiente tabla, se proporcionan propiedades de registro de auditoría y sus valores específicos para los registros de conexión: Propiedad Valor methodNamegoogle.ssh-serialport.v1.connectstatus.messageConnection succeeded.request.serialConsoleOptionsIndica cualquier opción que se especificó con la solicitud, incluido el número de puerto en serie. request.@typetype.googleapis.com/google.compute.SerialConsoleSessionBeginrequest.usernameIndica el nombre de usuario especificado para esta solicitud. Esto se usa para elegir la clave pública para que coincida. operation.firstTRUEstatus.codePara las solicitudes de conexión exitosas, un valor status.codedegoogle.rpc.Code.OKindica que la operación se completó con éxito sin ningún error. Como el valor de enumeración para esta propiedad es0, la propiedadstatus.codeno se muestra. Sin embargo, cualquier código que comprueba un valorstatus.codedegoogle.rpc.Code.OKfuncionará como se esperaba.Registros de desconexión En la siguiente tabla, se proporcionan propiedades de registro de auditoría y sus valores específicos para los registros de desconexión: Propiedad Valor methodNamegoogle.ssh-serialport.v1.disconnectresponse.durationIndica la cantidad de tiempo, en segundos, que duró la sesión. response.@typetype.googleapis.com/google.compute.SerialConsoleSessionEndoperation.lastTRUERegistros de conexión fallidos Cuando falla una conexión, Compute Engine crea una entrada de registro de auditoría. Un registro de conexión con errores es muy similar a una entrada de conexión exitosa, pero tiene las siguientes propiedades para indicar una conexión con errores. Propiedad Valor severityERRORstatus.codeIndica el código de error canónico de la API de Google que describe mejor el error. A continuación, se detallan los posibles códigos de error que pueden aparecer: - google.rpc.Code.INVALID_ARGUMENT: la conexión falló porque el cliente proporcionó un número de puerto no válido o intentó acceder a un canal desconocido. Consulta la lista de números de puerto válidos.
- google.rpc.Code.PERMISSION_DENIED: no habilitaste la consola en serie interactiva en el servidor de metadatos. Para obtener más información, consulta cómo habilitar el acceso interactivo en la consola en serie.
- google.rpcCode.UNAUTHENTICATED: no se encontraron Llaves SSH o no se encontró ninguna Llave SSH para esta instancia. Comprueba que estés autenticado en la instancia de VM.
- google.rpc.Code.UNKNOWN: se produjo un error desconocido con tu solicitud. Puedes comunicarte con Google en el grupo de discusión gce o presentar un informe de errores.
 status.messageIndica el mensaje legible para esta entrada. Inhabilita el acceso interactivo a la consola en seriePara inhabilitar el acceso a la consola en serie interactiva, debes cambiar los metadatos en la instancia o proyecto específico, o establecer una Política de la organización que inhabilite el acceso a la consola en serie interactiva a todas las instancias de VM para uno o más proyectos que forman parte de la organización. Inhabilita la consola en serie interactiva en una instancia o proyecto en particularLos propietarios y editores del proyecto, así como los usuarios a los que se les otorgó la función compute.instanceAdmin.v1, pueden inhabilitar el acceso a la consola en serie si cambian los metadatos de la instancia o proyecto en particular. Al igual que para habilitar el acceso a la consola en serie, configura los metadatos deserial-port-enableenFALSE:serial-port-enable=FALSE Por ejemplo, mediante Google Cloud CLI, puedes aplicar estos metadatos a una instancia específica de esta manera: gcloud compute instances add-metadata instance-name \ --metadata=serial-port-enable=FALSEPara aplicar los metadatos al proyecto, ejecuta este comando: gcloud compute project-info add-metadata \ --metadata=serial-port-enable=FALSEInhabilita el acceso a la consola en serie interactiva a través de la política de la organizaciónSi se te otorgó la función orgpolicy.policyAdminen la organización, puedes establecer una política de la organización que evite el acceso interactivo a la consola en serie, sin importar si su acceso interactivo está habilitado en el servidor de metadatos. Una vez establecida, la política anula efectivamente la clave de metadatos deserial-port-enabley ningún usuario de la organización o proyecto puede habilitar el acceso interactivo a la consola en serie. De forma predeterminada, esta restricción se establece comoFALSE.La restricción para inhabilitar el acceso interactivo a la consola en serie es la siguiente: compute.disableSerialPortAccess Completa las siguientes instrucciones para establecer esta política en la organización. Después de configurarla, puedes otorgar exenciones por proyecto. gcloudPara establecer la política con Google Cloud CLI, ejecuta el comando resource-manager enable-enforce. Reemplazaorganization-idpor el ID de tu organización. Por ejemplo,1759840282.gcloud resource-manager org-policies enable-enforce \ --organization organization-id compute.disableSerialPortAccessRESTPara establecer una política en la API, realiza una solicitud POSTa la URL que aparece a continuación. Reemplazaorganization-namecon el nombre de tu organización. Por ejemplo,organizations/1759840282.POST https://cloudresourcemanager.googleapis.com/v1/organization-name:setOrgPolicy El cuerpo de la solicitud debe contener un objeto de policycon la siguiente restricción:"constraint": "constraints/compute.disableSerialPortAccess" Por ejemplo: { "policy": { "booleanPolicy": { "enforced": TRUE }, "constraint": "constraints/compute.disableSerialPortAccess" } }La política estará vigente de inmediato, por lo que cualquier proyecto de la organización deja de permitir el acceso interactivo a la consola en serie al instante. Para inhabilitar la política de forma temporal, usa el comando disable-enforce, como se indica a continuación:gcloud resource-manager org-policies disable-enforce \ --organization organization-id compute.disableSerialPortAccessComo alternativa, puedes realizar una solicitud a la API en la que el cuerpo de la solicitud establezca el parámetro enforcedenFALSE:{ "policy": { "booleanPolicy": { "enforced": FALSE }, "constraint": "constraints/compute.disableSerialPortAccess" } }Establece la política de la organización a nivel de proyectoPuedes establecer la misma política de la organización por proyecto. Esto anula la configuración a nivel de la organización. gcloudPara desactivar la aplicación de esta política en un proyecto específico, ejecuta el siguiente comando. Reemplaza project-idpor el ID del proyecto.gcloud resource-manager org-policies disable-enforce \ --project project-id compute.disableSerialPortAccessPuedes activar la aplicación de esta política. Para ello, usa el comando enable-enforcecon los mismos valores.RESTEn la API, realiza una solicitud POSTa la siguiente URL para habilitar el acceso interactivo a la consola en serie para el proyecto. Para ello, reemplazaproject-idcon el ID del proyecto:POST https://cloudresourcemanager.googleapis.com/v1/projects/project-id:setOrgPolicy El cuerpo de la solicitud debe contener un objeto policycon la siguiente restricción:"constraint": "constraints/compute.disableSerialPortAccess" Por ejemplo: { "policy": { "booleanPolicy": { "enforced": FALSE }, "constraint": "constraints/compute.disableSerialPortAccess" } }Sugerencias y trucos- Si tienes problemas para conectarte mediante un cliente SSH estándar, pero - gcloud compute connect-to-serial-portse conecta con éxito, podría resultarte útil ejecutar- gcloud compute connect-to-serial-portcon la opción de línea de comandos- --dry-runpara ver el comando SSH que habría ejecutado en tu nombre, y compara las opciones con el comando que usas.
- Si usas una VM de Windows con el Acceso al SO habilitado y encuentras un error - UNAUTHENTICATED, verifica que tus claves SSH públicas se hayan publicado en los metadatos de tu proyecto o instancia. Para obtener más información, consulta Administra llaves SSH en los metadatos.
- Cuando configuras la tasa de bits, también conocida como velocidad en baudios, puedes establecer cualquier tasa de bits que desees, como - stty 9600, pero la función, por lo general, fuerza la tasa efectiva a 115,200 bps (~11.5 kb/s). Esto se debe a que muchas imágenes públicas tienen tasas de bits lentas de forma predeterminada, como 9,600 en la consola en serie, y se inician de forma lenta.
- Algunas imágenes de SO tienen valores predeterminados inconvenientes en el puerto en serie. Por ejemplo, en CentOS 7, el - stty icrnlpredeterminado para la tecla Intro en la consola es para enviar un- CR, también conocido como- ^M. La shell de Bash podría enmascarar esta información hasta que intentes configurar una contraseña. En ese momento, podrías preguntarte por qué parece detenida en el prompt- password:.
- Algunas imágenes públicas tienen teclas de control de trabajo que están inhabilitadas de forma predeterminada si conectas una shell a un puerto de ciertas maneras. Algunos ejemplos de estas teclas incluyen - ^Zy- ^C. El comando- setsidpodría corregir esto. De lo contrario, si ves un mensaje- job control is disabled in this shell, ten cuidado de no ejecutar comandos que deberás interrumpir.
- Puede que te resulte útil indicarle al sistema el tamaño de la ventana que usas para que Bash y los editores puedan administrarlo de forma correcta. De lo contrario, podrías experimentar un comportamiento de visualización extraño porque Bash o los editores intentan manipular la visualización en función de suposiciones incorrectas sobre la cantidad de filas y columnas disponibles. Usa el comando - stty rows Y cols Xy la marca- stty -apara ver cuál es la configuración. Por ejemplo:- stty rows 60 cols 120(si la ventana tiene 120 caracteres por 60 líneas).
- Si, por ejemplo, te conectas con SSH de la máquina A a la máquina B y, luego, a la máquina C, etc., creando una sesión SSH anidada, y deseas usar comandos de virgulilla (~) para desconectar o enviar una señal de interrupción en serie, tendrás que agregar suficientes caracteres de virgulilla adicionales al comando para llegar al cliente SSH correcto. El cliente SSH interpretará un comando que sigue a una única virgulilla en la máquina A; un comando que sigue dos virgulillas consecutivas (Intro ~~) es interpretado por el cliente en la máquina B, y así sucesivamente. Solo debes presionar Intro una vez porque eso se pasa completamente hasta el destino SSH más interno. Esto es verdadero para cualquier uso de clientes SSH que proporcionen la función de escape de virgulilla. - Si no recuerdas cuántos caracteres de virgulilla necesitas, presiona la tecla Intro y, luego, escribe los caracteres uno a la vez hasta que la instancia repita la virgulilla. Esta repetición indica que llegaste al final de la cadena y ahora sabes que para enviar un comando de virgulilla al cliente SSH más anidado, necesitas una virgulilla menos que la cantidad que escribiste. 
 Opciones avanzadasTambién puedes usar las siguientes opciones avanzadas con el puerto en serie. Controla las conexiones máximasPuedes establecer la propiedad max-connectionspara controlar cuántas conexiones simultáneas se pueden hacer a este puerto en serie a la vez. El número predeterminado y máximo de conexiones es 5. Por ejemplo:gcloud compute connect-to-serial-port instance-name \ --port port-number \ --extra-args max-connections=3ssh -i private-ssh-key-file -p 9600 project-id.zone.instance-name.username.max-connections=3@ssh-serialport.googleapis.com Establece opciones de repeticiónDe forma predeterminada, cada vez que te conectes a la consola en serie, recibirás una repetición de las últimas 10 líneas de datos, independientemente de que otro cliente SSH haya visto las últimas 10 líneas. Puedes cambiar esta configuración y controlar cuántas y cuáles líneas se muestran si estableces las siguientes opciones: - replay-lines=N: Establece- Nen el número de líneas que deseas repetir. Por ejemplo, si- Nes 50, entonces, se incluyen las últimas 50 líneas del resultado de la consola.
- replay-bytes=N: repite los- Nbytes más recientes. También puedes establecer- Nen- new, que repite todos los resultados que aún no se enviaron a ningún cliente.
- replay-from=N: repite el resultado a partir de un índice de bytes absoluto que proporciones. Puedes obtener el índice de bytes actual del resultado de la consola en serie mediante una solicitud- getSerialPortOutput. Si estableces- replay-from, se ignoran todas las demás opciones de repetición.
 Con Google Cloud CLI, agrega lo siguiente al comando connect-to-serial-port, en el queNes la cantidad especificada de líneas (o bytes o índice de bytes absolutos, según la opción de repetición que selecciones):--extra-args replay-lines=N Si usas un cliente SSH de terceros, proporciona esta opción en tu comando SSH: ssh -i private-ssh-key-file -p 9600 myproject.us-central1-f.example-instance.jane.port=3.replay-lines=N@ssh-serialport.googleapis.com También puedes usar una combinación de estas opciones. Por ejemplo: - replay-lines=Ny- replay-bytes=new
- Repite la cantidad especificada de líneas O todos los resultados que no se enviaron antes a ningún cliente, el que sea mayor. El primer cliente que se conecte con esta combinación de marcas verá el resultado que se envió al puerto en serie, y los clientes que se conecten posteriormente solo verán las últimas Nlíneas. Ejemplos:
 gcloud compute connect-to-serial-port instance-name--port port-number --extra-args replay-lines=N,replay-bytes=new ssh -i private-ssh-key-file -p 9600 project-id.zone.instance-name.username.replay-lines=N.replay-bytes=new@ssh-serialport.googleapis.com - replay-lines=Ny- replay-bytes=M
- Repite las líneas hasta el número de líneas o bytes descritos por estas marcas, pero sin superarlo, lo que sea menor. Esta opción no repetirá más de NoMbytes.
 gcloud compute connect-to-serial-port instance-name--port port-number --extra-args replay-lines=N,replay-bytes=M ssh -i private-ssh-key-file -p 9600 project-id.zone.instance-name.username.replay-lines=N.replay-bytes=M@ssh-serialport.googleapis.com Maneja los resultados descartadosEl resultado 1 MiB más reciente para cada puerto en serie siempre está disponible y, en general, tu cliente SSH no debería perder ningún resultado del puerto en serie. Si, por algún motivo, tu cliente SSH deja de aceptar el resultado durante un período, pero no se desconecta y se produce más de 1 MiB de datos nuevos, es posible que tu cliente SSH pierda algún resultado. Cuando el cliente SSH no acepta datos lo suficientemente rápido para mantenerse al día con el resultado en el puerto de consola en serie, puedes configurar la propiedad de on-dropped-outputpara determinar cómo se comporta la consola.Establece cualquiera de las siguientes opciones aplicables con esta propiedad: - insert-stderr-note: Inserta una nota en el- stderrdel cliente SSH que indique que se descartó el resultado. Esta es la opción predeterminada.
- ignore: Descarta el resultado de forma silenciosa y no realiza ninguna acción.
- disconnect: Detiene la conexión.
 Por ejemplo: gcloud compute connect-to-serial-port instance-name \ --port port-number \ --extra-args on-dropped-output=ignoressh -i private-ssh-key-file -p 9600 project-id.zone.instance-name.username.on-dropped-output=ignore@ssh-serialport.googleapis.com Habilita la desconexión con los comandos de salida o cierre de sesiónPuedes habilitar la desconexión cuando sales o cierras sesión si configuras la propiedad on-dtr-lowparadisconnectcuando te conectas a la consola en serie.En Google Cloud CLI, agrega la siguiente marca al comando connect-to-serial-port:--extra-args on-dtr-low=disconnect Si usas un cliente SSH de terceros, proporciona esta opción en tu comando SSH: ssh -i private-ssh-key-file -p 9600 myproject.us-central1-f.example-instance.jane.port=3.on-dtr-low=disconnect@ssh-serialport.googleapis.com Si habilitas la opción disconnect, es posible que tu instancia se desconecte una o más veces cuando la reinicies, puesto que el sistema operativo restablece los puertos en serie cuando se inicia.La configuración predeterminada para la opción on-dtr-lowesnone. Si usas la configuración predeterminadanone, puedes reiniciar la instancia sin desconectarte de la consola en serie, pero la consola no se desconectará por medios normales, como los comandosexitologout, o las combinaciones de teclas normales como Ctrl + D.¿Qué sigue?- Obtén más información sobre la API de getSerialPortOutput.
- Aprende a conservar y ver el resultado del puerto en serie incluso después de borrar una instancia de VM.
- Lee más sugerencias para solucionar problemas.
- Obtén más información sobre cómo aplicar metadatos.
- Obtén información sobre las Llaves SSH.
 Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados. Última actualización: 2025-10-19 (UTC) -