Instancia de SSH a Elastic Beanstalk

Acabo de inscribirme en la nueva oferta de Amazon Elastic Beanstalk y me encanta. Lo que no puedo entender es cómo SSH a una instancia de Beanstalk. No tengo una clave privada porque Beanstalk generó la instancia en mi nombre. Ideas?

Gracias, Benno

Descubrí que es un proceso de 2 pasos. Esto supone que ya ha configurado un par de llaves para acceder a las instancias de EC2 en la región correspondiente.

Configurar grupo de seguridad

  1. En la consola de AWS, abra la pestaña EC2.
  2. Seleccione la región relevante y haga clic en Grupo de seguridad.
  3. Debería tener un grupo de seguridad elasticbeanstalk-default si ha lanzado una instancia de Elastic Beanstalk en esa región.
  4. Edite el grupo de seguridad para agregar una regla para el acceso SSH. Lo siguiente lo bloqueará para permitir solo el ingreso desde una dirección IP específica.

     SSH | tcp | 22 | 22 | 192.168.1.1/32 

Configure el entorno de su aplicación Elastic Beanstalk

  1. Si aún no ha creado un par de claves, cree uno haciendo clic en Pares clave debajo del Grupo de seguridad en la pestaña ec2.
  2. En la consola de AWS, abra la pestaña Elastic Beanstalk.
  3. Seleccione la región relevante.
  4. Seleccione el entorno relevante
  5. Seleccione Configuraciones en el panel izquierdo.
  6. Seleccione Instancias.
  7. En “Par de claves EC2:”, seleccione el nombre de su par de Existing Key Pair campo Existing Key Pair .

Una vez que la instancia se haya reiniciado, debe obtener el nombre de host de la pestaña de instancias de AWS Console EC2, o mediante la API. Debería poder ssh en el servidor.

 $ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com 

Nota: Para agregar un par de llaves a la configuración del entorno, la protección de terminación de las instancias debe estar desactivada ya que Beanstalk intentará finalizar las instancias actuales y comenzar nuevas instancias con KeyPair.

Nota: Si algo no funciona, verifique la pestaña “Eventos” en la aplicación / entornos Beanstalk y descubra qué salió mal.

Elastic beanstalk CLI v3 ahora es compatible con SSH directo con el comando eb ssh . P.ej

 eb ssh your-environment-name 

No es necesario tener la molestia de configurar grupos de seguridad para encontrar la dirección de instancia de EC2.

También hay un buen truco:

 eb ssh --force 

Eso forzará temporalmente la apertura del puerto 22 a 0.0.0.0, y lo mantendrá abierto hasta que exit . Esto combina un poco de los beneficios de la respuesta principal, sin la molestia. Puede otorgar temporalmente a alguien que no sea el que tenga acceso para la depuración y otras cosas. Por supuesto, igual tendrá que cargar su clave pública al host para que tenga acceso. Una vez que haces eso (y mientras estés dentro de eb ssh ), la otra persona puede

 ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com 

Mi experiencia en agosto de 2013 con un cliente de Linux y una sencilla instalación de AWS Beanstalk (única instancia de EC2) es la siguiente (según el Wiki de la comunidad anterior).

Configurar grupo de seguridad

  1. En la consola de AWS, seleccione EC2 para ir al panel de EC2
  2. Descubra el grupo de seguridad al que pertenece su instancia de EC2 haciendo clic en Instancias en el panel de la izquierda y luego seleccionando la instancia a la que desea conectarse (en mi caso solo hay una llamada Entorno por Defecto). Los detalles se muestran en la base de la página. Debería ver un campo para Grupos de seguridad, anotar el nombre, en mi caso, “awsweb …”.
  3. En el panel de la izquierda, selecciona Grupos de seguridad.
  4. Seleccione el grupo de seguridad awsweb... y los detalles deben mostrarse en la base de la página
  5. Seleccione la pestaña Entrada y elija SSH desde el menú desplegable “Crear una nueva regla”. Inserte la dirección IP / CIDR de su máquina local (desde la que desea conectarse), por ejemplo, 192.168.0.12/32 y haga clic en Agregar regla y aplique cambios de regla.

Crear pares de claves públicas y privadas

  1. Desde el panel EC2, seleccione Pares clave en el panel izquierdo
  2. Haga clic en Par de claves (en la parte superior) e ingrese un nombre como myname-key-pair-myregion o el nombre de clave válido que desee.
  3. Confirme y luego acepte la descarga de la clave privada desde el navegador, guardándola, por ejemplo, en su directorio personal o donde quiera. Asegúrese de que el directorio solo tenga permisos de escritura para usted.

Asociar el par de claves pública privada con el servidor Elastic Beanstalk EC2

  1. Para agregar un par de claves públicas y privadas a una instancia de Elastic Beanstalk EC2 haga lo siguiente: Servicios -> Elastic Beanstalk -> Mi aplicación -> Entorno por defecto lo lleva al entorno predeterminado (aquel donde carga su aplicación)
  2. Haga clic en Configuración (en el panel de la izquierda) y luego en el engranaje / engranaje asociado con “Instancias”
  3. Se muestra una página titulada “Servidor”
  4. Seleccione su par de clave preconstruida desde el par de claves EC2 y guarde
  5. Se muestra un mensaje de advertencia, así que vuelva a guardar.

Conéctese a la instancia de AWS EC2 utilizando SSH

  1. En una sesión de terminal, cambie al directorio que contiene su clave privada (archivo .pem).
  2. Si ha tenido algunos bashs, probablemente debería hacer algo con .ssh / known_hosts si tiene uno como cambiarle el nombre. De lo contrario, puede obtener un error sobre la identidad del host que ha cambiado.
  3. Do: ssh -i ./myname-key-pair-my-region.pem ec2-user@ec2-some-address.us-west-2.compute.amazonaws.com

Buena suerte

Hay una práctica opción ‘Conectar’ en el menú ‘Acciones de instancia’ para la instancia de EC2. Le dará el comando exacto de SSH para ejecutar con la url correcta para la instancia. Las instrucciones generales de Jabley son correctas.

He estado jugando con esto también.

  1. vaya a su pestaña de servicio de judías elásticas
  2. en la descripción general de su aplicación goto action -> edit configuration
  3. agregue el nombre de una clave tal como aparece en su pestaña EC2 (para la misma región) al cuadro de pares de claves existente y presione aplicar cambios

El servicio será relanzado, así que prepare un café por 5 minutos

En la pestaña ec2 de la misma región, verá su nueva instancia en ejecución. ssh al nombre público dns como usuario ec2 usando la clave agregada en 3 ej. ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com

Si está utilizando el elástico Bean y EB CLI, simplemente use eb ssh para iniciar sesión en la instancia. Puede usar las opciones especificadas en el siguiente enlace http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html

Debe conectarse a la instancia de ec2 directamente usando su dirección IP pública. No puedes conectarte usando la url de springbeanstalk.

Puede encontrar la dirección IP de la instancia buscándola en la consola ec2.

También debe asegurarse de que el puerto 22 esté abierto. Por defecto, la CLI de EB cierra el puerto 22 después de que se completa una conexión ssh. Puede llamar a eb ssh -o para mantener el puerto abierto después de que se complete la sesión de ssh.

Advertencia: debe saber que beanstalk elástico podría reemplazar su instancia en cualquier momento. El estado no está garantizado en ninguna de sus instancias de frijoles elásticos. Probablemente sea mejor usar ssh solo para fines de prueba y depuración, ya que cualquier cosa que modifique puede desaparecer en cualquier momento.

Las respuestas anteriores son un poco viejas.

Primero crea un par de claves y luego conéctalo al entorno Elastic Beanstalk.

Pasos para crear un par de claves

  1. Iniciar sesión en AWS
  2. Servicios -> EC2
  3. A la izquierda en RED y SEGURIDAD, seleccione pares de claves
  4. Seleccione Crear nuevo par de claves, escriba el nombre de la clave y haga clic en crear. La clave se descargará automáticamente a su sistema.

Pasos para unir el par de claves creado al entorno Elastic Beanstalk

  1. AWS -> Servicios -> Elastic Beanstalk

  2. Seleccione su entorno y haga clic en la configuración de la izquierda.

  3. En la descripción general de la configuración, seleccione modificar desde Seguridad.

  4. En Permisos de máquina virtual, seleccione el par de claves que creamos.

  5. Haga clic en guardar y luego en guardar configuración.

Esto llevará algún tiempo para reflejar a su instancia de EC2.

La dirección para establecer el par de claves para una instancia ElasticBeanstalk ec2 con la UI actual es: Advertencia: Esto requerirá una actualización de las instancias EC2 en su aplicación ElasticBeanstalk. Nota: Deberá haber creado un par de claves en el tablero EC2 antes de esto.

1) En AWS Dashboard, seleccione el servicio ElasticBeanstalk 2) Seleccione la aplicación que desea usar. 3) Seleccione ‘Configuración’ 4) Seleccione el ícono de ajustes (configuraciones) en el cuadro de configuración ‘Instancias’. 5) Esto lo llevará a una página llamada ‘Servidor’, donde puede actualizar el campo desplegable ‘Par de claves EC2’ con su par de claves deseado y seleccionar ‘Guardar’.

Una cosa a tener en cuenta es que esto puede no funcionar para Aplicaciones con instancias múltiples (pero creo que es probable si están todos en la misma región que el par de claves).

También me encontré con el mismo problema hace un rato. Quería usar el archivo de clave, pero Amazon dice en alguna parte que no se puede agregar un archivo de clave a un servidor EC2 existente. Para la primera aplicación Beanstalk, Amazon preconfigura la aplicación por usted. Necesita crear una nueva aplicación, y puede configurar el servidor EC2 que ejecuta la aplicación Beanstalk para usar un archivo pem antiguo (ppk si usa Putty), o puede crear uno nuevo. Ahora deberías poder SSH.

enter image description here

Luego configura, luego borra tu aplicación anterior.