¿Cómo utilizo un host bastión para conectarme de forma segura a mi instancia de Linux de EC2 en una subred privada?

5 minutos de lectura
0

Quiero usar un host bastión para conectarme a mi instancia de Linux de Amazon Elastic Compute Cloud (Amazon EC2) que se ejecuta en una subred privada.

Breve descripción

Las instancias de Linux de EC2 utilizan archivos de pares de claves SSH como método de autenticación predeterminado. Los archivos de pares de claves eliminan la necesidad de nombres de usuario y contraseñas SSH. Para mantener un entorno seguro, no almacene nunca las claves privadas en el host bastión. Para conectarse mediante un host bastión, utilice el reenvío de ssh-agent en el cliente. El ssh-agent permite que un administrador se conecte desde el bastión a otra instancia sin almacenar la clave privada en el bastión.

Solución

Requisitos previos

  • El host bastión debe estar presente en la subred pública de la VPC para que pueda acceder al host a través de Internet.
  • Configure el grupo de seguridad de la instancia privada de Linux para que acepte conexiones SSH únicamente desde el host bastión.
  • Configure el grupo de seguridad del host bastión para permitir conexiones SSH (TCP/22) únicamente desde direcciones IP conocidas y de confianza.

Configurar el reenvío de ssh-agent en un cliente macOS o Linux

Nota: El paquete openssh-clients se instala de forma predeterminada en la mayoría de las distribuciones Linux y macOS y contiene ssh-agent.

1.Ejecute el siguiente comando para iniciar ssh-agent en segundo plano. ssh-agent almacena las claves SSH en la memoria.

#  eval $(ssh-agent)

2.Ejecute el siguiente comando para añadir la clave SSH a ssh-agent:

# ssh-add "/path/to/key.pem"

3.Ejecute el siguiente comando para comprobar que las claves se han añadido a ssh-agent:

# ssh-add -l

4.Ejecute el siguiente comando para conectarse al host bastión. En el siguiente comando, sustituya User y Bastion_Host_****IP_address por los valores correctos para su caso de uso.

# ssh -A User@Bastion_Host_IP_Address

Nota: Asegúrese de incluir el indicador**-A** en el comando anterior. Si añade el indicador**-A**, el reenvío de ssh-agent no funcionará, ya que las claves no se añadirán a la memoria. Después de añadir las claves SSH a la memoria, no es necesario especificar la clave SSH en sí misma mediante el indicador**-i**. Esto se debe a que SSH intenta utilizar automáticamente todas las claves SSH guardadas en ssh-agent.

5.Tras conectarse al host bastión, ejecute el siguiente comando para conectarse a la instancia privada de Linux. En el siguiente comando, sustituya User y Private_instance_IP_address por los valores correctos para su caso de uso.

# ssh User@Private_instance_IP_address

Si la clave privada correspondiente a la instancia privada está cargada en ssh-agent, la conexión se completa correctamente.

Configurar el reenvío de ssh-agent en un cliente Windows

Puede conectarse a instancias de VPC de Linux desde Windows mediante PuTTY (un cliente SSH gratuito para Windows). Para obtener la funcionalidad del agente SSH, utilice Pageant (un agente de autenticación SSH). Pageant guarda las claves privadas en la memoria. Cuando Pageant esté instalado, podrá usar la opción de reenvío de agentes en PuTTY para conectarse a instancias de subredes privadas.

1.Descargue e instale PuTTY y Pageant desde la página de descargas de PuTTY.

2.PuTTY no admite de forma nativa el formato PEM para las claves SSH. Para conectarse a la instancia mediante PuTTY, use PuTTYgen para convertir la clave privada del formato PEM al formato PuTTY. PuTTYgen está disponible en la página de descargas de PuTTY. Para obtener más información, consulte Convierta su clave privada utilizando PuTTYgen.

3.Abre Pageant y añada las claves privadas. Para importar a Pageant la clave con formato Putty, inicie la aplicación Pageant desde el menú Inicio. De forma predeterminada, Pageant se abre minimizado en la bandeja del sistema.

Nota: Si el icono de Pageant no está visible en la bandeja del sistema, usa la configuración de la barra de tareas para añadirlo. Para obtener más información, consulte Personalizar el área de notificación de la barra de tareas en el sitio web support.microsoft.com

4.Para añadir las claves SSH, haga clic con el botón derecho en el icono de Pageant en la bandeja del sistema y, a continuación, seleccione Agregar clave. Para ver la clave añadida, haga clic con el botón derecho en el icono de Pageant en la bandeja del sistema y, a continuación, seleccione Ver claves

5.Complete los siguientes pasos para iniciar una sesión SSH de PuTTY y activar Permitir el reenvío de agentes:

  • En el menú Inicio, seleccione Todos los programas, PuTTY, PuTTY.
  • En el panel Categorías, seleccione Sesión.
  • En el campo Nombre de host, realice una de las siguientes acciones:
    Para conectarte mediante el nombre DNS público de la instancia, introduzca nombredeusuario@dns-público-de-instancia.
    Para conectarse mediante la dirección IPv4 de la instancia, introduzca nombredeusuario@dirección-IPv4-de-instancia.
  • Seleccione el Tipo de conexión, SSH y asegúrese de que el valor de Puerto sea 22.
  • En el panel Categorías, expanda Conexión, SSH y, a continuación, seleccione Autenticación.
  • Seleccione Permitir el reenvío de agentes.
  • Seleccione Abrir.

6.Puede conectarse desde el bastión a cualquier instancia de la VPC sin tener la clave privada SSH en el bastión. Use el siguiente comando para conectarse a otras instancias. En el siguiente comando, sustituya User y Private_instance_IP_address por los valores correctos para su caso de uso.

# ssh User@Private_instance_IP_address

Si la clave privada correspondiente a la instancia privada está cargada en Pageant, la conexión se completa correctamente.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses