Acabei de me inscrever na nova oferta Elastic Beanstalk da Amazon. O que não consigo descobrir é como fazer o SSH para uma instância do Beanstalk. Não tenho uma chave privada porque o Beanstalk gerou a instância em meu nome.
amazon-web-services
amazon-ec2
ssh
amazon-elastic-beanstalk
Benno Waldmann
fonte
fonte
eb ssh
Respostas:
Eu achei que era um processo de duas etapas. Isso pressupõe que você já configurou um par de chaves para acessar instâncias do EC2 na região relevante.
Configurar grupo de segurança
elasticbeanstalk-default
grupo de segurança se tiver iniciado uma instância do Elastic Beanstalk nessa região.Edite o grupo de segurança para adicionar uma regra para acesso SSH. O abaixo irá travá-lo para permitir apenas a entrada de um endereço IP específico.
Configure o ambiente do seu aplicativo Elastic Beanstalk
Existing Key Pair
campo.Depois que a instância for reiniciada, você precisará obter o nome do host na guia Instâncias do AWS Console EC2 ou na API. Você deve conseguir fazer o ssh no servidor.
Nota: Para adicionar um par de chaves à configuração do ambiente, a proteção de encerramento das instâncias deve estar desativada, pois o Beanstalk tentaria encerrar as instâncias atuais e iniciar novas instâncias com o KeyPair.
Nota: Se algo não estiver funcionando, verifique a guia "Eventos" nos aplicativos / ambientes do Beanstalk e descubra o que deu errado.
fonte
Elastic Beanstalk CLI v3 agora suporta SSH direto com o comando
eb ssh
. Por exemploNão é necessário todo o aborrecimento de configurar grupos de segurança para descobrir o endereço da instância do EC2.
Há também este truque legal:
Isso forçará temporariamente a porta 22 a abrir para 0.0.0.0 e a manterá aberta até você
exit
. Isso combina um pouco dos benefícios da resposta principal, sem problemas. Você pode conceder temporariamente alguém que não seja o seu acesso para depuração e outros enfeites. É claro que você ainda precisará carregar a chave pública no host para que eles tenham acesso. Depois de fazer isso (e enquanto estiver dentroeb ssh
), a outra pessoa poderáfonte
eb ssh production
,. Você também pode configurar um ambiente específico com a opção de configuração:eb ssh production --setup
Minha experiência em agosto de 2013 com um cliente linux e uma instalação simples do AWS Beanstalk (instância única do EC2) é a seguinte (com base no Community Wiki acima)
Configurar grupo de segurança
awsweb...
grupo de segurança e os detalhes devem aparecer na base da páginaCriar par de chaves público-privado
Associar o par de chaves privadas públicas ao servidor EC2 do Elastic Beanstalk
Conecte-se à instância do AWS EC2 usando SSH
Boa sorte
fonte
Eu tenho jogado com isso também.
O serviço será relançado, então faça um café por 5 minutos
Na guia ec2 da mesma região, você verá sua nova instância em execução. ssh para o nome público do DNS como usuário do ec2 usando a chave adicionada em 3, por exemplo, ssh [email protected]
fonte
Existe uma opção útil 'Conectar' no menu 'Ações da instância' para a instância do EC2. Ele fornecerá o comando SSH exato a ser executado com o URL correto para a instância. As instruções gerais de Jabley estão corretas.
fonte
As respostas acima são um pouco antigas.
Primeiro, crie um par de chaves e depois anexe-o ao ambiente do Elastic Beanstalk.
Etapas para criar um par de chaves
Etapas para anexar o par de chaves criado ao ambiente Elastic Beanstalk
AWS -> Serviços -> Elastic Beanstalk
Selecione seu ambiente e clique na configuração à esquerda.
Na Visão geral da configuração, selecione modificar em Segurança.
Em Permissões da máquina virtual, selecione o par de chaves que criamos.
Clique em salvar e, em seguida, em salvar configuração.
Isso levará algum tempo para refletir na sua instância do EC2.
fonte
Se você estiver usando bean elástico e EB CLI, use apenas
eb ssh
para efetuar login na instância. Você pode usar as opções especificadas no link a seguir http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.htmlfonte
Você precisa se conectar diretamente à instância ec2 usando seu endereço IP público. Você não pode se conectar usando o URL do elasticbeanstalk.
Você pode encontrar o endereço IP da instância pesquisando-o no console ec2.
Você também precisa garantir que a porta 22 esteja aberta. Por padrão, o EB CLI fecha a porta 22 após a conclusão de uma conexão ssh. Você pode chamar eb ssh -o para manter a porta aberta após a conclusão da sessão ssh.
Aviso: você deve saber que o pé de feijão elástico pode substituir sua instância a qualquer momento. O estado não é garantido em nenhuma de suas instâncias elásticas do pé de feijão. Provavelmente é melhor usar o ssh apenas para fins de teste e depuração, pois qualquer coisa que você modifique pode desaparecer a qualquer momento.
fonte
A direção para definir o par de chaves para uma instância do ElasticBeanstalk ec2 com a interface do usuário atual é: Aviso: Isso exigirá uma atualização das instâncias do EC2 no aplicativo ElasticBeanstalk. Nota: Você precisará ter criado um par de chaves no painel do EC2 antes disso.
1) No AWS Dashboard, selecione o serviço ElasticBeanstalk 2) Selecione o aplicativo que você deseja usar. 3) Selecione 'Configuração' 4) Selecione o ícone de engrenagem (configurações) na caixa de configuração 'Instâncias'. 5) Isso o levará a uma página intitulada 'Servidor', onde você pode atualizar o campo suspenso 'Par de chaves EC2' com o par de chaves desejado e selecionar 'Salvar'.
Uma coisa a observar é que isso pode não funcionar para aplicativos com várias instâncias (mas acredito que é provável que todos estejam na mesma região que o par de chaves).
fonte
Eu vim aqui procurando uma maneira de adicionar uma chave a uma instância que o Beanstalk cria durante o provisionamento (estamos usando o Terraform). Você pode fazer o seguinte no Terraform:
Você pode usar essa chave para SSH na caixa.
fonte
Se você configurou a CLI usando
eb init
em seu ambiente, deve ser tão simples quantoeb ssh --setup
o que permitirá que você crie um novo par de chaves ou use um existente, se houver.Você também pode se conectar ao ambiente existente,
eb use
embora eu não tenha feito isso.Para obter detalhes sobre a instalação da CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
fonte
No mac, você pode instalar o cli usando o brew:
Com a ferramenta de linha de comando, você pode ssh com:
e também realizar outras operações. Isso pressupõe que você adicionou um grupo de segurança que permite o ssh do seu ip.
fonte
Dependendo da configuração do seu ambiente, talvez você não tenha um endereço IP público na instância do EC2 criada para o seu ambiente. Você pode verificar por:
Por fim, selecione seu novo EIP e escolha Endereço associado no menu de ação. Associe esse IP à sua instância do EC2. Você deve conseguir se conectar usando
eb ssh
agora.Você pode redefinir os detalhes da conexão executando
eb ssh --setup
.fonte
Eu também tive o mesmo problema há algum tempo. Eu queria usar o arquivo de chave, mas a Amazon diz em algum lugar que você não pode adicionar um arquivo de chave a um servidor EC2 existente. Para o primeiro aplicativo Beanstalk, a Amazon pré-configura o aplicativo para você. Você precisa criar um novo aplicativo e pode configurar o servidor EC2 que executa o aplicativo Beanstalk para usar um arquivo pem antigo (ppk se estiver usando o Putty) ou criar um novo. Agora você deve poder fazer o SSH.
Em seguida, configure e exclua seu aplicativo antigo.
fonte