Mi sono appena registrato per la nuova offerta di Amazon Elastic Beanstalk. Quello che non riesco a capire è come SSH in un'istanza di Beanstalk. Non ho una chiave privata perché Beanstalk ha generato l'istanza per mio conto.
eb ssh
Mi sono appena registrato per la nuova offerta di Amazon Elastic Beanstalk. Quello che non riesco a capire è come SSH in un'istanza di Beanstalk. Non ho una chiave privata perché Beanstalk ha generato l'istanza per mio conto.
eb ssh
Risposte:
Ho trovato che si trattava di un processo in 2 passaggi. Ciò presuppone che tu abbia già impostato una coppia di chiavi per accedere alle istanze EC2 nella regione interessata.
elasticbeanstalk-default
gruppo di sicurezza se hai lanciato un'istanza Elastic Beanstalk in quella regione.Modifica il gruppo di sicurezza per aggiungere una regola per l'accesso SSH. Quanto segue lo bloccherà per consentire l'ingresso solo da un indirizzo IP specifico.
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
campo. Una volta riavviato l'istanza, è necessario ottenere il nome host dalla scheda Istanze di AWS Console EC2 o tramite l'API. Dovresti quindi essere in grado di ssh sul server.
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
Nota: per aggiungere una coppia di chiavi alla configurazione dell'ambiente, la protezione di terminazione delle istanze deve essere disattivata poiché Beanstalk tenterebbe di terminare le istanze correnti e avviare nuove istanze con KeyPair.
Nota: se qualcosa non funziona, controlla la scheda "Eventi" nell'applicazione / ambiente Beanstalk e scopri cosa è andato storto.
Elastic beanstalk CLI v3 ora supporta SSH diretto con il comando eb ssh
. Per esempio
eb ssh your-environment-name
Non c'è bisogno di seccare la creazione di gruppi di sicurezza per scoprire l'indirizzo dell'istanza EC2.
C'è anche questo bel trucco:
eb ssh --force
Ciò forzerà temporaneamente l'apertura della porta 22 a 0.0.0.0 e la manterrà aperta fino a te exit
. Questo unisce un po ' i vantaggi della risposta migliore, senza problemi. Puoi concedere temporaneamente a qualcuno diverso da te l'accesso per il debug e quant'altro. Ovviamente dovrai comunque caricare la loro chiave pubblica sull'host per avere accesso. Una volta che lo fai (e finché sei dentro eb ssh
), l'altra persona può
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. Puoi anche impostare un ambiente specifico con l'opzione di installazione:eb ssh production --setup
La mia esperienza nell'agosto 2013 con un client Linux e una semplice installazione di AWS Beanstalk (singola istanza EC2) è la seguente (basata sul Wiki della community sopra)
awsweb...
gruppo di sicurezza e i dettagli dovrebbero essere visualizzati alla base della paginaIn bocca al lupo
Ho giocato anche con questo.
Il servizio verrà riavviato, quindi prepara un caffè per 5 minuti
Nella tua scheda ec2 per la stessa regione vedrai la tua nuova istanza in esecuzione. ssh al nome DNS pubblico come utente ec2 utilizzando la chiave aggiunta in 3 ad es. ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
Le risposte sopra sono un po 'vecchie.
Innanzitutto crea una coppia di chiavi e poi collegala all'ambiente Elastic Beanstalk.
Passaggi per creare una coppia di chiavi
Passaggi per collegare la coppia di chiavi creata all'ambiente Elastic Beanstalk
AWS -> Servizi -> Elastic Beanstalk
Seleziona il tuo ambiente e fai clic sulla configurazione a sinistra.
Nella panoramica della configurazione selezionare modifica da Sicurezza.
In Autorizzazioni macchina virtuale selezionare la coppia di chiavi che abbiamo creato.
Fare clic su Salva e quindi su Salva configurazione.
Questo richiederà del tempo per riflettere sulla tua istanza EC2.
Se si utilizza il bean elastico e l'interfaccia della riga di comando EB, utilizzare solo eb ssh
per accedere all'istanza. Puoi utilizzare le opzioni come specificato nel seguente link
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
Devi connetterti all'istanza ec2 direttamente usando il suo indirizzo IP pubblico. Non è possibile connettersi utilizzando l'URL elasticbeanstalk.
È possibile trovare l'indirizzo IP dell'istanza cercandolo nella console ec2.
È inoltre necessario assicurarsi che la porta 22 sia aperta. Per impostazione predefinita, l'interfaccia della riga di comando di EB chiude la porta 22 dopo il completamento di una connessione ssh. È possibile chiamare eb ssh -o per mantenere la porta aperta al termine della sessione ssh.
Attenzione: dovresti sapere che il beanstalk elastico potrebbe sostituire la tua istanza in qualsiasi momento. Lo stato non è garantito in nessuna delle istanze di beanstalk elastiche. Probabilmente è meglio usare ssh solo a scopo di test e debugging, dato che tutto ciò che si modifica può andare via in qualsiasi momento.
La direzione per impostare la coppia di chiavi per un'istanza di ElasticBeanstalk ec2 con l'interfaccia utente corrente è: Avviso: questo richiederà un aggiornamento delle istanze EC2 nella tua app ElasticBeanstalk. Nota: prima di ciò dovrai aver creato una coppia di chiavi nella dashboard EC2.
1) In AWS Dashboard, selezionare il servizio ElasticBeanstalk 2) Selezionare l'applicazione che si desidera utilizzare. 3) Seleziona "Configurazione" 4) Seleziona l'icona a forma di ingranaggio (impostazioni) nella casella di configurazione "Istanze". 5) Verrà visualizzata una pagina denominata "Server", in cui è possibile aggiornare il campo a discesa "Coppia di chiavi EC2" con la coppia di chiavi desiderata e selezionare "Salva".
Una cosa da notare è che questo potrebbe non funzionare per le applicazioni con più istanze (ma credo che sia probabile che si trovino tutti nella stessa regione della coppia di chiavi).
Sono venuto qui alla ricerca di un modo per aggiungere una chiave a un'istanza creata da Beanstalk durante il provisioning (stiamo usando Terraform). Puoi fare quanto segue in Terraform:
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
È quindi possibile utilizzare quella chiave per SSH nella casella.
Se la CLI è stata configurata per l'utilizzo eb init
nel proprio ambiente, dovrebbe essere semplice come
eb ssh --setup
che ti permetterà di creare una nuova coppia di chiavi o di usarne una esistente se ne esiste una.
Potresti anche essere in grado di connetterti all'ambiente esistente eb use
anche se non l'ho fatto.
Per dettagli sull'installazione della CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
A seconda della configurazione del proprio ambiente, è possibile che non si disponga di un indirizzo IP pubblico sull'istanza EC2 creata per il proprio ambiente. Puoi controllare tramite:
Infine, seleziona il tuo nuovo EIP e scegli Indirizzo associato dal menu azioni. Associa quell'IP alla tua istanza EC2. Dovresti essere in grado di connetterti usando eb ssh
ora.
È possibile ripristinare i dettagli della connessione eseguendo eb ssh --setup
.
Ho anche incontrato lo stesso problema qualche tempo fa. Volevo usare il file chiave, ma Amazon dice da qualche parte che non è possibile aggiungere un file chiave a un server EC2 esistente. Per la prima applicazione di Beanstalk, Amazon preconfigura l'applicazione per te. Devi creare una nuova applicazione e puoi configurare il server EC2 che esegue l'app Beanstalk per usare un vecchio file pem (ppk se usi Putty), oppure puoi crearne uno nuovo. Ora dovresti essere in grado di SSH.
Quindi configura, quindi elimina la tua vecchia app.