SSH'den Elastik Beanstalk örneğine


304

Amazon'un yeni Elastik Beanstalk teklifine yeni kaydoldum. Anlayamadığım şey bir Beanstalk örneğine SSH nasıl yapılır. Özel bir anahtarım yok çünkü Beanstalk benim adıma örnek oluşturdu.


Sonunda giriş yaptıktan sonra git repo'yu ittiğim klasöre nasıl gidebilirim?
Evolve

Yukarıdaki cevaplar biraz tarihli gibi görünüyor. Amazon'un şimdi nasıl yapılacağı konusunda iyi bir dokümanı var. Anahtar çiftinin nasıl oluşturulacağına ilişkin yukarıdaki önerileri uygulayın. Sonra şunu takip edin: <br> <br> docs.aws.amazon.com/elasticbeanstalk/latest/dg/… İyi şanslar!
Jordan Michael Rushing

4
ELB eb ssh
CLI'nin

Yanıtlar:


491

Bunu 2 adımlı bir süreç olarak buldum. Bu, ilgili bölgedeki EC2 bulut sunucularına erişmek için önceden bir anahtar çifti ayarladığınızı varsayar.

Güvenlik Grubunu Yapılandırma

  1. AWS konsolunda EC2 sekmesini açın.
  2. İlgili bölgeyi seçin ve Güvenlik Grubu'nu tıklayın.
  3. Bu elasticbeanstalk-defaultbölgede bir Elastik Fasulye Örneği örneği başlattıysanız bir güvenlik grubunuz olmalıdır .
  4. SSH erişimi için bir kural eklemek üzere güvenlik grubunu düzenleyin. Aşağıdakiler, yalnızca belirli bir IP adresinden girişe izin vermek için kilitleyecektir.

    SSH | tcp | 22 | 22 | 192.168.1.1/32
    

Elastik Beanstalk Uygulamanızın ortamını yapılandırın

  1. Henüz bir anahtar çifti oluşturmadıysanız, ec2 sekmesinde Güvenlik Grubu'nun altındaki Anahtar Çiftleri'ni tıklayarak bir anahtar çifti oluşturun.
  2. AWS konsolunda, Elastik Beanstalk sekmesini açın.
  3. İlgili bölgeyi seçin.
  4. İlgili Ortamı seçin
  5. Sol bölmedeki Konfigürasyonlar'ı seçin.
  6. Güvenlik'i seçin.
  7. "EC2 anahtar çifti:" altında, Existing Key Pairalandaki anahtar çiftinizin adını seçin .

Örnek yeniden başlatıldığında, ana bilgisayar adını AWS Konsolu EC2 örnekleri sekmesinden veya API yoluyla almanız gerekir. Daha sonra sunucuya ssh edebilmeniz gerekir.

$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com

Not: Ortam yapılandırmasına bir anahtar çifti eklemek için, Beanstalk geçerli örnekleri sonlandırmaya ve KeyPair ile yeni örnekler başlatmaya çalışacağından örneklerin sonlandırma koruması kapalı olmalıdır.

Not: Bir şey çalışmıyorsa, Beanstalk uygulamasındaki / ortamlarındaki "Etkinlikler" sekmesine bakın ve neyin yanlış gittiğini öğrenin.


41
Bu cevabın diğer cevaplardan 2 kat daha fazla oyu var; teknik açıdan titizdir; ve son derece açık. Sorun nedir? Neden kabul edilmiyor?

6
Yukarıdaki talimatları izlemenize rağmen "İzin reddedildi (publickey)" hatasını alırsanız, aşağıdakiler nedenini açıklayabilir: EB kurulumunuz birden fazla EC2 örneği başlatıyorsa, bunlardan hangisinin ilişkili anahtar çiftini aldığını kontrol etmeniz gerekir o. Yalnızca anahtar çiftiyle örneğe SSH yapabilirsiniz. Öğrenmek için EC2 yönetim ortamı menüsündeki özellikleri inceleyebilirsiniz.
Görev Aradı Aronsson

27
Arayüz burada değişmiş olabilir. Benim için ikinci bölümdeki 4. ve 5. adımlar biraz farklıydı. Gösterge tablosunu açmak için ilgili ortamı seçmem ve ardından soldan 'Yapılandırma'yı seçmem gerekiyordu. Sunucu ayarları sayfasını getiren 'Bulut Sunucuları'nın yanındaki ayarlar dişli çark simgesini tıklayın. Uygun olan bir açılır menüden bir EC2 anahtar çifti seçebildim. Yine de harika cevap için teşekkürler!
Dallin

12
Ssh komutu için özel anahtar (.pem) dosyasını ve kullanici_adı @ public_dns_name (yanıt .pub uzantısı tarafından belirtildiği için ortak anahtar değil) belirtmeniz gerekir. Amazon Linux için varsayılan kullanıcı adı ec2 kullanıcısıdır. RHEL5 için, kullanıcı adı genellikle köktür ancak ec2 kullanıcısı olabilir. Ubuntu için kullanıcı adı ubuntu'dur. SUSE Linux için kullanıcı adı köküdür. Aksi takdirde, AMI sağlayıcınıza danışın. (kredi: docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
yacc

5
Bu ayar, "Konfigürasyonlar" altındaki "Güvenlik" sekmesine taşındı (bu nedenle 6. adımda "Örnekler" yerine "Güvenlik" i seçin)
delucasvb

128

Elastik beanstalk CLI v3 artık komutla doğrudan SSH'yi destekliyor eb ssh. Örneğin

eb ssh your-environment-name

EC2 bulut sunucusu adresini bulmak için güvenlik grupları kurma zahmetine gerek yok.

Bu harika numara da var:

eb ssh --force

Bu, bağlantı noktası 22'yi geçici olarak 0.0.0.0'a zorlar ve siz açık olana kadar açık tutar exit. Bu , en üstteki cevabın faydalarını biraz zahmetsizce harmanlar . Geçici olarak hata ayıklama amacıyla başka birisine erişim izni verebilirsiniz. Elbette, erişebilmeleri için genel anahtarlarını ana bilgisayara yüklemeniz gerekir. Bunu yaptıktan sonra (ve içerideyken eb ssh), diğer kişi

ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com

2
CLI v3'ü kendim kurdum ve güzel çalışıyor. Sadece eklemek için, ortamı komuta ekleyerek belirtebilirsiniz, örn eb ssh production. Kurulum seçeneğiyle belirli bir ortam da kurabilirsiniz:eb ssh production --setup
jmera

Hmmm hayır, bunun için ~ / .ssh dizininde zaten özel anahtarın olması gerekir. Bazı insanlar var, bazıları yok. Yapmazsanız, yine de bir tane oluşturmanız ve indirmeniz ve EB'de ayarlamanız gerekir.
Jorge Orpinel

49

Ağustos 2013'teki linux istemcisi ve basit bir AWS Beanstalk kurulumu (tek EC2 örneği) ile yaşadığım deneyim (yukarıdaki Community Wiki'ye dayanarak) aşağıdaki gibidir

Güvenlik Grubunu Yapılandırma

  1. AWS konsolunda, EC2 Gösterge Tablosuna gitmek için EC2'yi seçin
  2. Sol taraftaki panelde Örnekler'i tıklatıp bağlanmak istediğiniz örneği seçerek (benim durumumda yalnızca bir tane Varsayılan Ortam denir) EC2 örneğinizin ait olduğu güvenlik grubunu keşfedin. Ayrıntılar sayfanın altında gösterilir - Güvenlik Grupları için bir alan görmelisiniz - adı not edin - benim durumumda "awsweb ...".
  3. Soldaki panelden Güvenlik Grupları'nı seçin.
  4. Seçip awsweb...güvenlik grubu ve ayrıntıları sayfasının dibinde göstermelidir
  5. Gelen sekmesini seçin ve "Yeni Kural Oluştur" açılır menüsünden SSH'yi seçin. Yerel makinenizin ip adresini / CIDR'sini (bağlanmak istediğiniz) girin, örneğin 192.168.0.12/32 ve Kural Ekle ve Kural Değişikliklerini Uygula'yı tıklayın.

Genel-Özel Anahtar Çifti Oluştur

  1. EC2 kontrol panelinden soldaki panelden Anahtar Çiftleri'ni seçin
  2. Anahtar Çifti'ni (üstte) tıklayın ve myname-key-pair-myregion veya istediğiniz geçerli anahtar adı gibi bir ad girin.
  3. Özel anahtarın tarayıcıdan indirilmesini onaylayın ve ardından ana dizininize veya istediğiniz her yere kaydedin. Dizinin yalnızca sizin için yazma izinlerine sahip olduğundan emin olun.

Genel Özel Anahtar Çifti ile Elastik Beanstalk EC2 Sunucusunu ilişkilendirin

  1. Bir Elastik Beanstalk EC2 örneğine genel-özel bir anahtar çifti eklemek için şunları yapın: Hizmetler -> Elastik Beanstalk -> Uygulamam -> Varsayılan Ortam sizi varsayılan ortama götürür (uygulamanızı yüklediğiniz ortam)
  2. Yapılandırma'yı (soldaki panelde) ve ardından "Örnekler" ile ilişkili dişli / dişliyi tıklayın
  3. "Sunucu" başlıklı bir sayfa görüntülenir
  4. EC2 Anahtar Çifti'nden önceden oluşturulmuş anahtarınızı seçin ve Kaydet
  5. Bazı uyarı mesajları görüntülenir, bu nedenle Kaydet'i tekrar yapın.

SSH kullanarak AWS EC2 Bulut Sunucusuna bağlanma

  1. Terminal oturumunda özel anahtarınızı (.pem dosyası) içeren dizine geçin.
  2. Bu konuda birkaç işleminiz varsa, yeniden adlandırmak gibi bir dosyanız varsa, muhtemelen .ssh / known_hosts hakkında bir şeyler yapmanız gerekir. Aksi takdirde, ana bilgisayarın kimliği değiştiğinde bir hata alabilirsiniz.
  3. Yapın: ssh -i ./myname-key-pair-my-region.pem ec2-user@ec2-some-address.us-west-2.compute.amazonaws.com

İyi şanslar


3
Ssh komutu için özel anahtar (.pem) dosyasını ve kullanıcı_adı @ public_dns_name belirtmeniz gerekir. Amazon Linux için varsayılan kullanıcı adı ec2 kullanıcısıdır. RHEL5 için, kullanıcı adı genellikle köktür ancak ec2 kullanıcısı olabilir. Ubuntu için kullanıcı adı ubuntu'dur. SUSE Linux için kullanıcı adı köküdür. Aksi takdirde, AMI sağlayıcınıza danışın. (kredi: docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
yacc

Bu soru, anahtar çifti bölümünü eklemek için en iyi açıklamaya sahiptir. Ama SSH bölümünü daha basit yapmak için eb-cli kullanmayı sevdim. Yine de bunu da iptal ettim.
Nick

35

Ben de bununla oynuyorum.

  1. elastik fasulyesi servis sekmesine git
  2. uygulamaya genel bakış işlemine geç -> yapılandırmayı düzenle
  3. bir anahtarın adını EC2 sekmenizde göründüğü gibi (aynı bölge için) mevcut anahtar çifti kutusuna ekleyin ve değişiklikleri uygula'ya basın

Hizmet yeniden başlatılacak, bu yüzden 5 dakika kahve yapın

Aynı bölge için ec2 sekmenizde yeni çalışan örneğinizi görürsünüz. ssh, 3'te eklenen anahtarı kullanarak genel dns adına ec2 kullanıcısı olarak örn. ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com


5
"Ec2-user" kısmı eklemek benim sorunumdu ... Bu yukarıdaki cevap ile birleştirilmelidir;).
Kirill Fuchs

30

EC2 örneği için 'Örnek İşlemleri' menüsünde kullanışlı bir 'Bağlan' seçeneği vardır. Örnek için doğru url ile yürütmeniz gereken tam SSH komutunu verecektir. Jabley'in genel talimatları doğrudur.


24

Yukarıdaki cevaplar biraz eski.

Önce bir anahtar çifti oluşturun ve daha sonra Elastik Beanstalk ortamına bağlayın.

Anahtar çifti oluşturma adımları

  1. AWS'ye Giriş
  2. Hizmetler -> EC2
  3. AĞ ve GÜVENLİK altında solda anahtar çiftlerini seçin
  4. Yeni Anahtar Çifti Oluştur'u seçin, anahtar adını yazın ve oluştur'a tıklayın. Anahtar otomatik olarak sisteminize indirilecektir.

Oluşturulan anahtar çiftini Elastik Beanstalk ortamına ekleme adımları

  1. AWS -> Hizmetler -> Elastik Beanstalk

  2. Ortamınızı seçin ve soldaki yapılandırmaya tıklayın.

  3. Yapılandırmaya genel bakış bölümünde Güvenlik'ten değiştir'i seçin.

  4. Sanal makine izinleri altında, oluşturduğumuz anahtar çiftini seçin.

  5. Kaydet'i ve ardından yapılandırmayı kaydet'i tıklayın.

Bu, EC2 yönetim ortamınıza yansıtmak için biraz zaman alacaktır.



3

Ec2 örneğine doğrudan genel IP adresini kullanarak bağlanmanız gerekir. Elastik fasulyeli url kullanarak bağlanamazsınız.

Örnek ip adresini ec2 konsolunda arayarak bulabilirsiniz.

Ayrıca 22 numaralı bağlantı noktasının açık olduğundan emin olmanız gerekir. EB CLI, ssh bağlantısı tamamlandıktan sonra varsayılan olarak 22 numaralı bağlantı noktasını kapatır. Ssh oturumu tamamlandıktan sonra bağlantı noktasını açık tutmak için eb ssh -o öğesini çağırabilirsiniz.

Uyarı: Elastik fasulyenin istediğiniz zaman örneğinizin yerini alabileceğini bilmelisiniz. Elastik beantalk örneklerinizde durum garanti edilmez. Ssh'yi yalnızca test etmek ve hata ayıklama amacıyla kullanmak daha iyidir, çünkü değiştirdiğiniz herhangi bir şey herhangi bir zamanda gidebilir.


2

Geçerli kullanıcı arayüzüyle birlikte bir RubberBeanstalk ec2 örneği için anahtar çiftini ayarlama yönü şöyledir: Uyarı: Bu, RubberBeanstalk Uygulamanızdaki EC2 örneklerinin güncellenmesini gerektirecektir. Not: Bundan önce EC2 kontrol panelinde bir anahtar çifti oluşturmanız gerekir.

1) AWS Gösterge Panosunda, FlexibleBeanstalk servisini seçin 2) Kullanmak istediğiniz Uygulamayı seçin. 3) 'Yapılandırma'yı seçin 4)' Örnekler 'yapılandırma kutusundaki dişli (ayarlar) simgesini seçin. 5) Bu sizi 'Sunucu' başlıklı bir sayfaya götürür; burada 'EC2 anahtar çifti' açılır alanını istediğiniz anahtar çiftiyle güncelleyebilir ve 'Kaydet'i seçebilirsiniz.

Unutulmaması gereken bir şey, bunun birden fazla örneği olan Uygulamalar için işe yaramayabileceğidir (ancak bunların anahtar çifti ile aynı bölgede olmalarının muhtemel olduğuna inanıyorum).


1

Buraya Beanstalk'un provizyon sırasında oluşturduğu bir örneğe anahtar eklemenin bir yolunu aradım (Terraform kullanıyoruz). Terraform'da aşağıdakileri yapabilirsiniz:

resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
   ... 
   setting {
      namespace = "aws:autoscaling:launchconfiguration"
      name      = "EC2KeyName"
      value     = "${aws_key_pair.your-ssh-key.key_name}"
   }
   ...
}

Daha sonra kutuyu SSH olarak kullanmak için bu tuşu kullanabilirsiniz.



1

Mac'te, demlemeyi demlemeyi kullanarak kurabilirsiniz:

brew install awsebcli

Komut satırı aracıyla ssh ile şunları yapabilirsiniz:

eb ssh environment-name

ve diğer işlemleri de yapabilir. Bu, ip'inizden ssh'a izin veren bir güvenlik grubu eklediğinizi varsayar.


0

Ortam yapılandırmanıza bağlı olarak, ortamınız için oluşturulan EC2 örneğinde genel bir IP adresiniz olmayabilir. Kontrol edebilirsiniz:

  1. Git EC2 Konsolundan
  2. Örneğinizi bulun ve Açıklama sekmesini kontrol edin
  3. Herkese Açık IP yoksa ...
  4. Gezinme bölümünde Elastik IP'leri tıklayın
  5. Yeni adres ata'yı tıklayın
  6. Havuz için Amazon'u seçin
  7. Ata'yı tıklayın

Son olarak, yeni EIP'nizi seçin ve eylem menüsünden Adresi ilişkilendir'i seçin. Bu IP'yi EC2 yönetim ortamınızla ilişkilendirin. eb sshŞimdi kullanarak bağlanabilmelisiniz .

Bağlantı ayrıntılarını çalıştırarak sıfırlayabilirsiniz eb ssh --setup.


-5

Bir süre önce de aynı problemle karşılaştım. Anahtar dosyasını kullanmak istedim, ancak Amazon bir yerlerde mevcut bir EC2 sunucusuna anahtar dosyası ekleyemeyeceğinizi söylüyor. İlk Beanstalk uygulaması için Amazon uygulamayı sizin için önceden yapılandırır. Yeni bir uygulama oluşturmanız gerekir ve Beanstalk uygulamasını çalıştıran EC2 sunucusunu eski bir pem dosyası (Putty kullanıyorsanız ppk) kullanacak şekilde yapılandırabilir veya yeni bir tane oluşturabilirsiniz. Şimdi SSH yapabilmelisiniz.

resim açıklamasını buraya girin

Ardından yapılandırın, ardından eski uygulamanızı silin.


3
Bu yanlış. Mevcut bir beanstalk uygulamasına bir anahtar dosyası ekleyebilirsiniz. Kendini öldürecek / yeniden inşa edecek. Uygulamaları kendiniz silmeniz / oluşturmanız gerekmez.
Nate
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.