Potrzebujesz ssh z jednego serwera Amazon EC2 na inny

12

Zasadniczo muszę być w stanie połączyć się z jedną instancją EC2 do drugiej za pomocą SSH. Wykonuję polecenie ssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instancei upływa limit czasu.

Ustawiłem moją grupę zabezpieczeń, aby zezwalała na SSH przychodzące z publicznego adresu IP mojej drugiej instancji EC2, ale nadal nie działa. Wiem, że wszystko powinno być w porządku, ponieważ kiedy ustawię mój ruch przychodzący SSH na „zezwalaj z dowolnego miejsca”, mogę połączyć się bez problemów. Mogę również bez problemu połączyć się z instancją EC2 z komputera domowego (dodałem swój adres IP do grupy zabezpieczeń).

Oczywiście nie mogę pozostawić ruchu przychodzącego otwartego, aby „zezwolić z dowolnego miejsca”, ale nie mogę się połączyć, gdy ograniczę go tylko do adresu IP drugiej instancji EC2. Może publiczny adres IP nie jest tym, co powinienem umieścić w grupie bezpieczeństwa?


Nie mogę też tego pingować; po prostu się skończy. Oto wynikssh -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
Pompejusz
źródło

Odpowiedzi:

13

Instancje EC2 używają 10.X.X.Xadresu wewnętrznego (lub innego adresu w przypadku korzystania z VPC), a ruch do ich „publicznego” adresu IP jest po prostu przekierowywany na wewnętrzny adres IP. Instancje EC2 używają również innego serwera DNS, który nie jest publicznie dostępny. Po rozpoznaniu nazwy hosta drugiej instancji EC2, ponieważ użytkownik znajduje się w sieci AWS , podaje 10.X.X.Xadres instancji zamiast publicznego adresu IP. Dzięki temu ruch nie musi wychodzić z Internetu i wracać, co przyspiesza.

Nawet jeśli możesz dodać do białej listy według adresu IP, nie jest to dobry pomysł, ponieważ w klasycznym trybie EC2 zarówno adres wewnętrzny, jak i publiczny mogą się zmienić. Właściwym rozwiązaniem jest dodanie do białej listy według grup zabezpieczeń. Zasadniczo dodajesz regułę do docelowej grupy zabezpieczeń, mówiącą o zezwoleniu na port 22 z określonej grupy zabezpieczeń pochodzenia.

Jeśli oba wystąpienia znajdują się na tym samym koncie, po prostu zezwalasz sg-1234abcd(gdzie sg-1234abcdjest grupa zabezpieczeń, której członkiem jest instancja źródłowa). Jeśli są na różnych kontach, podaj numer konta, np 111122223333/sg-1234abcd. Dodatkowe informacje można
znaleźć w dokumentacji .

Patrick
źródło
Idealnie właśnie tego szukałem! Działa bez żadnych problemów!
Pompejusz
Mówiąc o grupach bezpieczeństwa różnych kont, musisz ustawić peering VPC, abyś mógł się do nich odwoływać. Zobacz tutaj: docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/…
Boris Strandjev,
Na zakończenie chciałem dodać, że AWS pobiera opłatę za ruch przychodzący do VPC z Internetu, ale ruch wewnątrz VPC jest bezpłatny, więc brak połączenia z Internetem jest nie tylko szybszy, ale także tańszy.
Blueriver