Precisa ssh de um servidor Amazon EC2 para outro

12

Basicamente, preciso conectar-me de uma instância do EC2 para outra usando o SSH. Eu executo o comando ssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instance, e ele expira.

Defino meu grupo de segurança para permitir a entrada SSH do endereço IP público da minha segunda instância do EC2, mas ainda não funciona. Eu sei que tudo deve ficar bem, porque quando configuro meu tráfego de entrada SSH para "permitir de qualquer lugar", posso me conectar sem problemas. Também posso conectar-me à instância do EC2 a partir de uma máquina doméstica (adicionei meu endereço IP ao grupo de segurança) sem problemas.

Obviamente, não posso deixar meu tráfego de entrada aberto para "permitir de qualquer lugar", mas não consigo me conectar quando o limite apenas ao endereço IP da segunda instância do EC2. Talvez o endereço IP público não seja o que eu deveria colocar no grupo de segurança?


Também não consigo fazer ping; apenas expira. Aqui está o 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
Pompeu
fonte

Respostas:

13

As instâncias do EC2 usam um 10.X.X.Xendereço interno (ou outro endereço, se estiver usando uma VPC), e o tráfego para o endereço IP 'público' é simplesmente redirecionado para o endereço IP interno. As instâncias do EC2 também usam um servidor DNS diferente que não é acessível ao público. Quando você resolve o nome do host da outra instância do EC2, por estar na rede da AWS , ele fornece o 10.X.X.Xendereço da instância em vez do endereço IP público. Isso evita que o tráfego precise acessar a Internet e voltar a entrar, o que o torna mais rápido.

Mesmo se você puder colocar na lista de permissões por endereço IP, essa não é uma boa idéia, pois no modo clássico do EC2, tanto o endereço interno quanto o público podem mudar. A solução adequada é colocar na lista de permissões por grupo de segurança. Você basicamente adiciona uma regra ao grupo de segurança de destino dizendo para permitir a porta 22 de um grupo de segurança de origem específico.

Se as duas instâncias estiverem na mesma conta, você simplesmente permitirá sg-1234abcd(onde sg-1234abcdé o grupo de segurança do qual a instância de origem é membro). Se eles estiverem em contas diferentes, inclua o número da conta, como 111122223333/sg-1234abcd.
Consulte a documentação para obter informações adicionais.

Patrick
fonte
Perfeito, é exatamente o que eu estava procurando! Funciona sem problemas!
Pompeu
Ao falar de grupos de segurança de contas diferentes, você precisa fazer o peering da VPC para poder referenciá-los. Veja aqui: docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/…
Boris Strandjev
Apenas para concluir, gostaria de acrescentar que a AWS cobra pelo tráfego de entrada de um VPC da Internet, mas o tráfego dentro do VPC é gratuito, portanto, não é só mais rápido, mas também mais barato, passar pela Internet.
Blueriver 20/02