Necesita ssh de un servidor Amazon EC2 a otro

12

Básicamente, necesito poder conectarme de una instancia EC2 a otra usando SSH. Ejecuto el comando ssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instancey se agota el tiempo de espera.

Configuré mi grupo de seguridad para permitir SSH entrante desde la dirección IP pública de mi segunda instancia EC2, pero aún no funciona. Sé que todo debería estar bien porque cuando configuro mi tráfico entrante SSH para "permitir desde cualquier lugar" puedo conectarme sin problemas. También puedo conectarme a la instancia EC2 desde una máquina doméstica (agregué mi dirección IP al grupo de seguridad) sin ningún problema.

Obviamente no puedo dejar mi tráfico entrante abierto para "permitir desde cualquier lugar", pero parece que no puedo conectarme cuando lo limito solo a la dirección IP de la segunda instancia de EC2. ¿Quizás la dirección IP pública no es lo que debería poner en el grupo de seguridad?


Parece que tampoco puedo hacer ping; solo se agota el tiempo de espera. Aquí está el resultado dessh -vv -i path-to-pem-file ec2-user@dns-address-of-ec2-instance

OpenSSH_6.2p2, OpenSSL 1.0.1h-fips 5 Jun 2014
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 50: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to dns-address [IP Address different from public ip] port 22.
debug1: connect to address [IP Address different from public ip] port 22: Connection timed out
ssh: connect to host dns-address port 22: Connection timed out
Pompeyo
fuente

Respuestas:

13

Las instancias EC2 usan una 10.X.X.Xdirección interna (u otra dirección si se usa una VPC), y el tráfico a su dirección IP 'pública' simplemente se redirige a la dirección IP interna. Las instancias de EC2 también usan un servidor DNS diferente al que no se puede acceder públicamente. Cuando resuelve el nombre de host de la otra instancia EC2, porque está dentro de la red de AWS , le proporciona la 10.X.X.Xdirección de la instancia en lugar de la dirección IP pública. Esto evita que el tráfico tenga que salir a Internet y volver a entrar, lo que lo hace más rápido.

Incluso si pudiera incluir en la lista blanca por dirección IP, esta no es una buena idea, ya que en el modo clásico EC2, tanto su dirección interna como pública pueden cambiar. La solución adecuada es incluir en la lista blanca por grupo de seguridad. Básicamente agrega una regla al grupo de seguridad de destino que dice permitir el puerto 22 de un grupo de seguridad de origen específico.

Si ambas instancias están en la misma cuenta, simplemente permite sg-1234abcd(dónde sg-1234abcdestá el grupo de seguridad del que es miembro la instancia de origen). Si están en cuentas diferentes, incluya el número de cuenta, como 111122223333/sg-1234abcd.
Consulte la documentación para obtener información adicional.

Patricio
fuente
¡Perfecto, eso es exactamente lo que estaba buscando! Funciona sin problemas!
Pompeyo
Cuando se habla de grupos de seguridad de diferentes cuentas, debe realizar el emparejamiento de VPC para poder hacer referencia a ellos. Ver aquí: docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/…
Boris Strandjev
Solo para completar, quería agregar que AWS le cobra por el tráfico entrante a una VPC desde Internet, pero el tráfico dentro de la VPC es gratuito, por lo que no pasar por Internet no solo es más rápido sino también más barato.
Blueriver