amazon-web-services - virginia - ssh into elastic beanstalk node
SSH a la instancia de Elastic Beanstalk (10)
Me acabo de inscribir en la nueva oferta Elastic Beanstalk de Amazon. 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.
Debe conectarse a la instancia ec2 directamente usando su dirección IP pública. No se puede conectar utilizando la url elasticbeanstalk.
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. De forma predeterminada, el EB CLI 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 una vez finalizada la sesión ssh.
Advertencia: debe saber que el beanstalk elástico podría reemplazar su instancia en cualquier momento. El estado no está garantizado en ninguna de sus instancias elásticas de beanstalk. Probablemente sea mejor usar ssh solo para fines de prueba y depuración, ya que todo lo que modifique puede desaparecer en cualquier momento.
Elastic beanstalk CLI v3 ahora admite 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 truco genial:
eb ssh --force
Eso forzará temporalmente el puerto 22 a abrirse a 0.0.0.0, y lo mantendrá abierto hasta que exit
. Esto combina un poco de los beneficios de la respuesta superior, sin la molestia. Puede otorgar temporalmente a alguien que no sea el acceso para la depuración y otras cosas. Por supuesto, todavía tendrá que cargar su clave pública en el host para que puedan tener acceso. Una vez que haces eso (y mientras estés dentro de eb ssh
), la otra persona puede
Hay una opción práctica ''Conectar'' en el menú ''Acciones de instancia'' para la instancia de EC2. Le dará el comando SSH exacto para ejecutar con la url correcta para la instancia. Las instrucciones generales de Jabley son correctas.
La dirección para establecer el par de claves para una instancia de ElasticBeanstalk ec2 con la interfaz de usuario actual es: Advertencia: Esto requerirá una actualización de las instancias de EC2 en su aplicación ElasticBeanstalk. Nota: Necesitará haber creado un par de claves en el panel de 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 icono de engranaje (configuración) en el cuadro de configuración ''Instancias''. 5) Esto lo llevará a una página titulada ''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 con aplicaciones con múltiples instancias (pero creo que es probable que todas estén en la misma región que el par de claves).
Me pareció 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
- En la consola de AWS, abra la pestaña EC2.
- Seleccione la región correspondiente y haga clic en Grupo de seguridad.
- Debería tener un grupo de seguridad
elasticbeanstalk-default
si ha lanzado una instancia de Elastic Beanstalk en esa región. 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
- Si aún no ha creado un par de claves, haga una haciendo clic en Pares de claves debajo de Grupo de seguridad en la pestaña ec2.
- En la consola de AWS, abra la pestaña Elastic Beanstalk.
- Seleccione la región correspondiente.
- Seleccione el ambiente relevante
- Seleccione Configuraciones en el panel izquierdo.
- Seleccione instancias.
- Debajo de "EC2 key pair:", seleccione el nombre de su par de
Existing Key Pair
campoExisting Key Pair
.
Una vez que la instancia se haya reiniciado, debe obtener el nombre del host desde la pestaña de instancias de la consola AWS EC2, o mediante la API. A continuación, debe poder ssh en el servidor.
$ ssh -i path/to/keypair.pub [email protected]
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ía terminar las instancias actuales e iniciar nuevas instancias con KeyPair.
Nota: si algo no funciona, revise la pestaña "Eventos" en la aplicación / entornos Beanstalk y averigüe qué fue lo que no funcionó.
Mi experiencia en agosto de 2013 con un cliente de Linux y una instalación simple de AWS Beanstalk (instancia única de EC2) es la siguiente (basada en la Comunidad Wiki más arriba)
Configurar grupo de seguridad
- En la consola de AWS, seleccione EC2 para ir al Panel de EC2
- 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 predeterminado). Los detalles se muestran en la base de la página - Debería ver un campo para Grupos de seguridad - anote el nombre - en mi caso "awsweb ...".
- En el panel de la izquierda, seleccione Grupos de seguridad.
- Seleccione el grupo de seguridad
awsweb...
y los detalles se mostrarán en la base de la página. - Seleccione la pestaña Entrante y elija SSH en 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 Aplicar cambios de regla.
Crear un par de claves público-privadas
- Desde el panel de EC2, seleccione Key Pairs desde el panel de la izquierda
- Haga clic en Key Pair (en la parte superior) e ingrese un nombre como myname-key-pair-myregion o el nombre de clave válido que desee.
- Confirme y luego acepte la descarga de la clave privada desde el navegador guardándola, por ejemplo, en su directorio de inicio o en cualquier lugar que desee. Asegúrese de que el directorio solo tenga permisos de escritura para usted.
Asocie el par de claves privadas públicas con el servidor EC2 de Elastic Beanstalk
- 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 predeterminado lo lleva al entorno predeterminado (el que carga su aplicación)
- Haga clic en Configuración (en el panel de la izquierda) y luego en el engranaje / engranaje asociado con "Instancias"
- Se muestra una página titulada "Servidor"
- Seleccione su par de claves precompiladas desde el par de claves EC2 y haga Guardar
- Se muestra algún mensaje de advertencia, así que vuelve a guardar.
Conéctese a la instancia de AWS EC2 utilizando SSH
- En una sesión de terminal, cambie al directorio que contiene su clave privada (archivo .pem).
- Si has tenido algunos intentos, probablemente deberías hacer algo con respecto a .ssh / known_hosts si tienes uno como cambiarle el nombre. De lo contrario, puede obtener un error acerca de que la identidad del host haya cambiado.
- Hacer: ssh -i ./myname-key-pair-my-region.pem [email protected]
Buena suerte
Por encima de las respuestas son un poco viejas.
Primero cree un par de claves y luego conéctelo al entorno de Elastic Beanstalk.
Pasos para crear un par de claves
- Inicie sesión en AWS
- Servicios -> EC2
- En la parte izquierda, debajo de RED y SEGURIDAD, seleccione los pares de teclas.
- 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 adjuntar el par de claves creado al entorno de Elastic Beanstalk
AWS -> Servicios -> Elastic Beanstalk
Seleccione su entorno y haga clic en la configuración de la izquierda.
En Vista general de configuración, seleccione Modificar de Seguridad.
En Permisos de máquina virtual, seleccione el par de claves que hemos creado.
Haga clic en guardar y luego en guardar configuración.
Esto tomará algún tiempo para reflejar su instancia de EC2.
Si está utilizando elastic bean y EB CLI, solo 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
También he estado jugando con esto.
- Vaya a la pestaña de servicio de beanstalk elástica.
- en la vista general de la aplicación goto action -> editar configuración
- agregue el nombre de una clave tal como aparece en su pestaña EC2 (para la misma región) al cuadro de par de llaves existente y presione aplicar cambios
El servicio será relanzado así que haga un café por 5 minutos.
En su pestaña ec2 para la misma región verá su nueva instancia en ejecución. ssh al nombre del dns público como ec2-user mediante la clave agregada en 3, por ejemplo, ssh [email protected]
También me encontré con el mismo problema hace un tiempo. Quería usar el archivo de claves, pero Amazon dice que no se puede agregar un archivo de claves a un servidor EC2 existente. Para la primera aplicación Beanstalk, Amazon preconfigura la aplicación por usted. Debe 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.
Luego configura, luego borra tu aplicación anterior.