Właśnie zapisałem się na nową ofertę Amazon Elastic Beanstalk. Nie mogę zrozumieć, jak połączyć się z instancją Beanstalk. Nie mam klucza prywatnego, ponieważ Beanstalk wygenerował instancję w moim imieniu.
eb ssh
Właśnie zapisałem się na nową ofertę Amazon Elastic Beanstalk. Nie mogę zrozumieć, jak połączyć się z instancją Beanstalk. Nie mam klucza prywatnego, ponieważ Beanstalk wygenerował instancję w moim imieniu.
eb ssh
Odpowiedzi:
Odkryłem, że jest to proces dwuetapowy. Zakłada się, że skonfigurowano już parę kluczy umożliwiającą dostęp do instancji EC2 w odpowiednim regionie.
elasticbeanstalk-default
zabezpieczeń, jeśli uruchomiłeś instancję Elastic Beanstalk w tym regionie.Edytuj grupę zabezpieczeń, aby dodać regułę dostępu SSH. Poniżej zablokuje to, aby umożliwić wejście tylko z określonego adresu IP.
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
. Po ponownym uruchomieniu instancji musisz uzyskać nazwę hosta z karty instancji ECS konsoli AWS EC2 lub za pośrednictwem interfejsu API. Powinieneś wtedy mieć możliwość ssh na serwerze.
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
Uwaga: Aby dodać parę kluczy do konfiguracji środowiska, ochrona przed zakończeniem instancji musi być wyłączona, ponieważ Beanstalk próbowałby zakończyć bieżące instancje i uruchomić nowe instancje za pomocą KeyPair.
Uwaga: Jeśli coś nie działa, sprawdź zakładkę „Zdarzenia” w aplikacji / środowiskach Beanstalk i dowiedz się, co poszło nie tak.
Interfejs CLI v3 elastycznej fasoli obsługuje teraz bezpośredni SSH za pomocą polecenia eb ssh
. Na przykład
eb ssh your-environment-name
Nie ma potrzeby instalowania grup zabezpieczeń w celu znalezienia adresu wystąpienia EC2.
Jest też ta fajna sztuczka:
eb ssh --force
To tymczasowo zmusi port 22 do otwarcia do 0.0.0.0 i pozostanie otwarty do Ciebie exit
. Łączy to w sobie zalety pierwszej odpowiedzi, bez kłopotów. Możesz tymczasowo przyznać dostęp komuś innemu niż Ty na debugowanie i tak dalej. Oczywiście nadal musisz przesłać klucz publiczny do hosta, aby mieli dostęp. Gdy to zrobisz (i tak długo, jak będziesz w środku eb ssh
), druga osoba może
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. Możesz również skonfigurować określone środowisko z opcją instalacji:eb ssh production --setup
Moje doświadczenia w sierpniu 2013 r. Z klientem linux i prostą instalacją AWS Beanstalk (pojedyncze wystąpienie EC2) są następujące (na podstawie Community Wiki powyżej)
awsweb...
grupę zabezpieczeń, a szczegóły powinny pojawić się u podstawy stronyPowodzenia
Bawiłem się również tym.
Usługa zostanie uruchomiona ponownie, więc zrób kawę przez 5 minut
Na karcie ec2 dla tego samego regionu zobaczysz nową działającą instancję. ssh do publicznej nazwy dns jako użytkownik ec2 za pomocą klucza dodanego w 3 np. ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
Powyższe odpowiedzi są nieco stare.
Najpierw utwórz parę kluczy, a następnie dołącz ją do środowiska Elastic Beanstalk.
Kroki tworzenia pary kluczy
Kroki dołączania utworzonej pary kluczy do środowiska Elastic Beanstalk
AWS -> Usługi -> Elastyczna łodyga fasoli
Wybierz środowisko i kliknij konfigurację po lewej stronie.
W przeglądzie konfiguracji wybierz zmodyfikuj z Security.
W obszarze Uprawnienia do maszyny wirtualnej wybierz utworzoną przez nas parę kluczy.
Kliknij przycisk Zapisz, a następnie Zapisz konfigurację.
Zastanowienie się nad instancją EC2 zajmie trochę czasu.
Jeśli używasz elastycznej fasoli i EB CLI, po prostu użyj, eb ssh
aby zalogować się do instancji. Możesz użyć opcji określonych w poniższym linku
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
Musisz połączyć się z instancją ec2 bezpośrednio przy użyciu jej publicznego adresu IP. Nie można połączyć się za pomocą adresu URL elasticbeanstalk.
Możesz znaleźć adres IP instancji, wyszukując go w konsoli ec2.
Musisz także upewnić się, że port 22 jest otwarty. Domyślnie EB CLI zamyka port 22 po zakończeniu połączenia ssh. Możesz wywołać eb ssh -o, aby pozostawić port otwarty po zakończeniu sesji ssh.
Ostrzeżenie: powinieneś wiedzieć, że elastyczna łodyga fasoli może w każdej chwili zastąpić Twoją instancję. Nie można zagwarantować stanu w żadnej z instancji elastycznej łodygi fasoli. Prawdopodobnie lepiej używać ssh tylko do testowania i debugowania, ponieważ wszystko, co zmodyfikujesz, może zniknąć w dowolnym momencie.
Kierunek ustawiania pary kluczy dla instancji ElasticBeanstalk ec2 z bieżącym interfejsem użytkownika: Ostrzeżenie: Będzie to wymagało aktualizacji instancji EC2 w aplikacji ElasticBeanstalk. Uwaga: Przed tym konieczne będzie utworzenie pary kluczy w desce rozdzielczej EC2.
1) W panelu AWS wybierz usługę ElasticBeanstalk 2) Wybierz aplikację, której chcesz użyć. 3) Wybierz „Konfiguracja” 4) Wybierz ikonę koła zębatego (ustawienia) w polu konfiguracji „Instancje”. 5) Nastąpi przejście do strony zatytułowanej „Serwer”, na której możesz zaktualizować pole rozwijane „Para kluczy EC2” o żądaną parę kluczy i wybrać opcję „Zapisz”.
Należy zauważyć, że może to nie działać w przypadku aplikacji z wieloma instancjami (ale wydaje mi się prawdopodobne, że wszystkie znajdują się w tym samym regionie co para kluczy).
Przybyłem tutaj, aby znaleźć sposób na dodanie klucza do instancji, którą tworzy Beanstalk podczas udostępniania (używamy Terraform). W Terraform możesz wykonać następujące czynności:
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
Następnie możesz użyć tego klucza do SSH w polu.
Jeśli skonfigurowałeś interfejs CLI eb init
w swoim środowisku, powinien on być tak prosty jak
eb ssh --setup
co pozwoli ci utworzyć nową parę kluczy lub użyć istniejącej, jeśli taka istnieje.
Możesz także być w stanie połączyć się z istniejącym środowiskiem, eb use
chociaż tego nie zrobiłem.
Szczegółowe informacje na temat instalowania interfejsu CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
W zależności od konfiguracji środowiska użytkownik może nie mieć publicznego adresu IP w instancji EC2 utworzonej dla tego środowiska. Możesz to sprawdzić:
Na koniec wybierz nowy EIP i wybierz opcję Powiąż adres z menu akcji. Powiąż ten adres IP z instancją EC2. Powinieneś być w stanie połączyć się za pomocąeb ssh
teraz.
Możesz zresetować szczegóły połączenia, uruchamiając eb ssh --setup
.
Jakiś czas temu spotkałem ten sam problem. Chciałem użyć pliku klucza, ale Amazon mówi gdzieś, że nie można dodać pliku klucza do istniejącego serwera EC2. W przypadku pierwszej aplikacji Beanstalk Amazon wstępnie ją skonfiguruje. Musisz utworzyć nową aplikację i możesz skonfigurować serwer EC2, na którym działa aplikacja Beanstalk, do korzystania ze starego pliku pem (ppk, jeśli używasz Putty), lub możesz utworzyć nowy. Teraz powinieneś być w stanie SSH.
Następnie skonfiguruj, a następnie usuń starą aplikację.