virginia refused publickey permission our ec2 east conectar con aws amazon-ec2

refused - Conexión rechazada a mi instancia Running Amazon EC2



putty aws (7)

Creé una instancia de micro ec2. Instalado todo el software web necesario, mysql y git. Creó un AMI fuera de esa instancia. Como esa instancia usaba EBS como su dispositivo raíz, también tomó una instantánea de EBS cuando estaba creando mi AMI.

Terminé esa instancia en ejecución. Luego intenté crear una instancia de esa imagen de máquina amazónica (AMI), la nueva instancia comenzó junto con un nuevo volumen de EBS que se adjuntó a la instancia.

Ahora cuando uso mi par de claves para iniciar sesión en esa instancia a través de mi clave ssh a su dirección DNS pública con un comando como

ssh -i aws/mykey.pem ubuntu@thepublicdnsname

dice

ssh: connect to host <thepublickdnsname> port 22: Connection refused

Por qué está pasando esto. Pude conectarme a mi primera instancia con las mismas teclas a través de ssh. Ahora la nueva instancia es la copia exacta y no puedo iniciar sesión en ella. ¿Alguna ayuda en esto ...? ¿Me estoy perdiendo de algo?

Usé los mismos pares de claves para crear la segunda instancia nueva del AMI.


¿Revisaste la dirección IP de la instancia? El mío cambia cada vez que lo ejecuto, a menos que elija IP fija.


AWS toma tiempo para mostrar una instancia de AMI. Si intenta conectarse demasiado rápido, y con demasiada frecuencia, la caja no puede responder. El siguiente script completo inicia una AMI, determina la dirección IP y espera hasta que el sistema esté listo para conectarse. Funcionaría muy bien para instancias puntuales cercanas o inferiores al precio actual, ya que el tiempo requerido para conectarse puede variar ampliamente.

El siguiente bucle provocó un error de conexión rechazada, cuando la declaración de suspensión fue comentada, y comenzó demasiado rápido después de que se inició la instancia. También consumió una gran cantidad de CPU en el servidor de scripts e hizo enormes registros de errores.

`nc -z $ip_address -w 20 22` 1>/dev/null 2>&1; result=$?; while [ $result -eq 1 ] do #echo $ip_address booting `nc -z $ip_address -w 30 22` 1>/dev/null 2>&1; result=$?; sleep 30 done

Aquí hay una secuencia de comandos completa para iniciar una instancia, etiquetarla, esperar que se inicie completamente y conectarse.

instance_id=$(aws ec2 run-instances --region us-east-1 --count 1 --instance-type $AMItype --image-id $ami --security-group-ids $sg_group --output text --query ''Instances[*].InstanceId'' ) aws ec2 create-tags --resources $instance_id --tags "Key=Name, Value=$AMIname #delay until AWS says instance is running start_state=0 while [ $start_state -ne 16 ] do start_state=$(aws ec2 start-instances --instance-ids $instance_id --query ''StartingInstances[*].PreviousState[*].Code[*]'' ) start_state=$(echo $start_state | tr -d ''" []'') sleep 10 done ip_address=$(aws ec2 describe-instances --instance-ids $instance_id --output text --query ''Reservations[*].Instances[*].PrivateIpAddress'') `nc -z $ip_address -w 20 22` 1>/dev/null 2>&1; result=$?; while [ $result -eq 1 ] do #waiting for routing updates and connectivity `nc -z $ip_address -w 30 22` 1>/dev/null 2>&1; result=$?; sleep 30 done


Descubrí que toma una cantidad de tiempo variable para que una instancia de EC2 aparezca y se inicialice. Uno es el tiempo entre llamar a ejecuciones de ec2 hasta que el estado de la instancia cambie de "pendiente" a "ejecutando". Después de eso hay un tiempo adicional cuando el servidor ssh está listo. Ese tiempo puede ser un par de minutos.


Otra posible causa de que una conexión rechace el error del puerto 22 está escribiendo mal el nombre del DNS público. Por ejemplo, parte de la mía contenía .compute. y puse la .computer. y me dio un error de puerto 22 en lugar de algo más sensible como que el host no existe.



Tuve el mismo problema: mi problema era que tenía un volumen adjunto a mi instancia, luego desconecté el volumen y lo eliminé. Seguí aws docs para montar mi instancia y edité / etc / fstab. Este era el problema: cuando el volumen se separa e intenta reiniciar (o detener e iniciar) la instancia que va a este archivo e intenta adjuntar el volumen inexistente y ssh daemon no se inicia.

La solución es : tuve que crear otra instancia, separar el volumen de la instancia problemática y luego editar el archivo mounted_point / etc / fstab para comentar la línea donde está intentando montar la instancia inexistente, volver a conectar el volumen a la instancia problemática y luego funcionó todo multa.


Tuve un problema diferente (y honestamente muy tonto). Publicando esta respuesta aquí en caso de que ayude a alguien más.

Como parte de mi depuración, lancé un par de instancias nuevas y ninguna de ellas se pudo conectar, ¡así que acabo de reiniciar mi máquina!

¡Ahora funciona! :RE