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.
eb ssh
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.
eb ssh
Respuestas:
Me pareció un proceso de 2 pasos. Esto supone que ya ha configurado un par de claves para acceder a instancias EC2 en la región relevante.
elasticbeanstalk-default
grupo de seguridad 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
Existing Key Pair
campo. Una vez que se ha relanzado la instancia, debe obtener el nombre de host de la pestaña de instancias de AWS Console EC2 o mediante la API. Entonces 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 claves 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 el KeyPair.
Nota: Si algo no funciona, revise la pestaña "Eventos" en la aplicación / entornos Beanstalk y descubra qué salió mal.
Elastic beanstalk CLI v3 ahora admite SSH directo con el comando eb ssh
. P.ej
eb ssh your-environment-name
No es necesario toda la molestia de configurar grupos de seguridad para encontrar la dirección de la instancia EC2.
También hay este truco genial:
eb ssh --force
Eso forzará temporalmente el puerto 22 abierto a 0.0.0.0, y lo mantendrá abierto hasta usted exit
. Esto combina un poco de los beneficios de la respuesta principal, sin la molestia. Puede otorgar temporalmente a alguien que no sea usted acceso para la depuración y demás. Por supuesto, aún tendrá que cargar su clave pública al host para que tenga acceso. Una vez que haces eso (y mientras estés dentro eb ssh
), la otra persona puede
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. También puede configurar un entorno específico con la opción de configuración:eb ssh production --setup
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 (según el Wiki de la comunidad anterior)
awsweb...
grupo de seguridad y los detalles deben aparecer en la base de la páginaBuena suerte
He estado jugando con esto también.
El servicio se relanzará, así que prepara un café durante 5 minutos.
En su pestaña ec2 para la misma región, verá su nueva instancia en ejecución. ssh al nombre público de dns como usuario ec2 utilizando la clave agregada en 3, por ejemplo, ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
Las respuestas anteriores son un poco viejas.
Primero cree un par de claves y luego adjúntelo al entorno Elastic Beanstalk.
Pasos para crear un par de claves
Pasos para adjuntar el par de claves creado al entorno Elastic Beanstalk
AWS -> Servicios -> Elastic Beanstalk
Seleccione su entorno y haga clic en la configuración de la izquierda.
En Descripción general de la configuración, seleccione modificar en Seguridad.
En Permisos de máquina virtual, seleccione el par de claves que creamos.
Haga clic en guardar y luego en guardar configuración.
Esto tomará un tiempo para reflejarse en su instancia EC2.
Si está utilizando bean bean y EB CLI, solo use eb ssh
para iniciar sesión en la instancia. Puede usar las opciones como se especifica en el siguiente enlace
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
Debe conectarse a la instancia ec2 directamente utilizando su dirección IP pública. No puedes conectarte usando la URL de 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, 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 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.
La dirección para establecer el par de claves para una instancia de ElasticBeanstalk ec2 con la IU actual es: Advertencia: Esto requerirá una actualización de las instancias de EC2 en su aplicación ElasticBeanstalk. Nota: Antes de esto, deberá haber creado un par de claves en el panel de EC2.
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 para aplicaciones con múltiples instancias (pero creo que es probable si todas están en la misma región que el par de claves).
Vine aquí buscando una manera de agregar una clave a una instancia que Beanstalk crea durante el aprovisionamiento (estamos usando Terraform). Puede hacer lo siguiente en Terraform:
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
Luego puede usar esa clave para SSH en el cuadro.
Si ha configurado la CLI utilizando eb init
su entorno, entonces debería ser tan simple como
eb ssh --setup
que le permitirá crear un nuevo par de claves o usar uno existente si existe.
También puede conectarse con el entorno existente eb use
aunque no lo haya hecho.
Para obtener detalles sobre la instalación de la CLI: https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
Dependiendo de la configuración de su entorno, es posible que no tenga una dirección IP pública en la instancia EC2 que se creó para su entorno. Puedes consultar por:
Finalmente, seleccione su nuevo EIP y elija Asociar dirección en el menú de acciones. Asocia esa IP con tu instancia EC2. Deberías poder conectarte usandoeb ssh
ahora.
Puede restablecer los detalles de la conexión ejecutando eb ssh --setup
.
También me encontré con el mismo problema hace un tiempo. Quería usar el archivo de clave, pero Amazon dice en alguna parte que no puede agregar un archivo de clave 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 usar SSH.
Luego configure, luego elimine su aplicación anterior.