Recebi acesso do AWS Console a uma conta com duas instâncias em execução que não consigo desligar (em produção). No entanto, gostaria de obter acesso SSH a essas instâncias, é possível criar um novo par de chaves e aplicá-lo às instâncias para que eu possa fazer o SSH? A obtenção do arquivo pem existente para o par de chaves em que as instâncias foram criadas atualmente não é uma opção.
Se isso não for possível, existe alguma outra maneira de entrar nas instâncias?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Chris Wagner
fonte
fonte
ssh-add
deve fazer o que você precisa.Respostas:
Você não pode aplicar um par de chaves a uma instância em execução. Você só pode usar o novo par de chaves para iniciar uma nova instância.
Para recuperação, se for uma AMI de inicialização do EBS, você pode interrompê-lo e fazer uma captura instantânea do volume. Crie um novo volume com base nele. E use-o novamente para iniciar a instância antiga, criar uma nova imagem ou recuperar dados.
Embora os dados no armazenamento efêmero sejam perdidos.
Devido à popularidade desta pergunta e resposta, eu queria capturar as informações no link que Rodney postou em seu comentário.
Crédito para Eric Hammond por esta informação .
Corrigindo arquivos no volume EBS raiz de uma instância do EC2
Você pode examinar e editar arquivos no volume raiz do EBS em uma instância do EC2, mesmo se estiver em uma situação desastrosa como:
Em um computador físico à sua mesa, você pode simplesmente inicializar o sistema com um CD ou pendrive, montar o disco rígido, fazer o check-out e corrigir os arquivos e, em seguida, reiniciar o computador para voltar aos negócios.
Uma instância remota do EC2, no entanto, parece distante e inacessível quando você está em uma dessas situações. Felizmente, a AWS nos fornece o poder e a flexibilidade para recuperar um sistema como esse, desde que executemos instâncias de inicialização do EBS e não armazenemos a instância.
A abordagem no EC2 é um pouco semelhante à solução física, mas vamos mover e montar o “disco rígido” defeituoso (volume EBS raiz) em uma instância diferente, corrigi-lo e movê-lo de volta.
Em algumas situações, pode ser mais fácil simplesmente iniciar uma nova instância do EC2 e jogar fora a ruim, mas se você realmente deseja corrigir seus arquivos, aqui está a abordagem que funcionou para muitos:
Configuração
Identifique a instância original (A) e o volume que contém o volume EBS raiz quebrado com os arquivos que você deseja exibir e editar.
Identifique a segunda instância do EC2 (B) que você usará para corrigir os arquivos no volume EBS original. Esta instância deve estar em execução na mesma zona de disponibilidade da instância A para que possa ter o volume EBS anexado a ela. Se você ainda não possui uma instância em execução, inicie uma temporária.
Interrompa a instância quebrada A (aguardando a parada completa), desanexe o volume EBS raiz da instância (aguardando a desanexação) e, em seguida, conecte o volume à instância B em um dispositivo não utilizado.
ssh na instância B e monte o volume para que você possa acessar seu sistema de arquivos.
Consertá-lo
Nesse ponto, todo o seu sistema de arquivos raiz da instância A está disponível para visualização e edição em / vol-a na instância B. Por exemplo, você pode:
Nota: Os uids nas duas instâncias podem não ser idênticos; portanto, tenha cuidado se estiver criando, editando ou copiando arquivos que pertencem a usuários não raiz. Por exemplo, seu usuário mysql na instância A pode ter o mesmo UID que o usuário postfix na instância B, o que pode causar problemas se você exibir arquivos com um nome e depois mover o volume de volta para A.
Embrulhar
Depois de terminar e ficar satisfeito com os arquivos em / vol-a, desmonte o sistema de arquivos (ainda na instância-B):
Agora, de volta ao seu sistema com ec2-api-tools, continue movendo o volume EBS de volta para o seu país na instância original A e inicie a instância novamente:
Felizmente, você resolveu o problema, a instância A aparece perfeitamente e você pode realizar o que originalmente se propôs a fazer. Caso contrário, talvez seja necessário continuar repetindo essas etapas até que funcione.
Nota: Se você tiver um endereço IP Elastic atribuído à instância A quando o interrompeu, precisará reassociá-lo depois de iniciá-lo novamente.
Lembrar! Se sua instância B foi temporariamente iniciada apenas para esse processo, não se esqueça de encerrá-la agora.
fonte
Embora você não possa adicionar um par de chaves diretamente a uma instância do EC2 em execução, você pode criar um usuário linux e criar um novo par de chaves para ele, e usá-lo como faria com o par de chaves do usuário original.
No seu caso, você pode solicitar ao proprietário da instância (quem a criou) que faça o seguinte. Portanto, o proprietário da instância não precisa compartilhar suas próprias chaves com você, mas você ainda poderá fazer o ssh nessas instâncias. Essas etapas foram originalmente publicadas por Utkarsh Sengar (também conhecido como @zengr ) em http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Fiz apenas algumas pequenas alterações.
Etapa 1: faça o login por usuário "ubuntu" padrão :
Etapa 2: crie um novo usuário, chamaremos nosso novo usuário de "john" :
Defina a senha para "john":
Adicione "john" à lista de sudoer por:
.. e adicione o seguinte ao final do arquivo:
Tudo bem! Nós criamos nosso novo usuário, agora você precisa gerar o arquivo de chave que será necessário para efetuar login, como temos my_orin_key.pem na Etapa 1.
Agora, saia e volte ao ubuntu, fora da raiz.
Etapa 3: criando as chaves públicas e privadas :
Digite a senha que você criou para "john" na Etapa 2. Em seguida, crie um par de chaves. Lembre-se de que a senha para o par de chaves deve ter pelo menos 4 caracteres.
Na etapa acima, john é o usuário que criamos e o ubuntu é o grupo de usuários padrão.
Passo 4: agora você só precisa baixar a chave chamada "john" . Eu uso o scp para baixar / fazer upload de arquivos do EC2, aqui está como você pode fazê-lo.
Você ainda precisará copiar o arquivo usando o usuário ubuntu , pois você só tem a chave para esse nome de usuário. Então, você precisará mover a chave para a pasta ubuntu e chmod para 777.
Agora vá ao terminal da máquina local, onde você tem o arquivo my_orig_key.pem e faça o seguinte:
O comando acima copiará a chave "john" para o diretório de trabalho atual em sua máquina local. Depois de copiar a chave para sua máquina local, você deve excluir "/ home / ubuntu / john", pois é uma chave privada.
Agora, um da sua máquina local chmod john para 600.
Etapa 5: hora de testar sua chave :
Portanto, dessa maneira, você pode configurar vários usuários para usar uma instância do EC2 !!
fonte
Na sua máquina local, execute o comando:
Após a execução desse comando, um arquivo que termina em * .pub será gerado. Copie o conteúdo desse arquivo.
Na máquina Amazon, edite ~ / .ssh / allowed_keys e cole o conteúdo do arquivo * .pub (e remova primeiro qualquer conteúdo existente).
Em seguida, você pode SSH usando o outro arquivo que foi gerado a partir do comando ssh-keygen (a chave privada).
fonte
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Isso aconteceu comigo mais cedo (não tinha acesso a uma instância do EC2 que alguém criou, mas tinha acesso ao console da web da AWS) e escrevi a resposta em blog: http://readystate4.com/2013/04/09/aws-gaining- ssh-acesso-a-uma-ec2-instância-você-perdeu-acesso-a /
Basicamente, você pode desconectar a unidade EBS, conectá-la a um EC2 ao qual você tem acesso. Adicione sua chave pub SSH a
~ec2-user/.ssh/authorized_keys
esta unidade conectada. Em seguida, coloque-o novamente na antiga instância do EC2. passo a passo no link usando o Amazon AMI.Não há necessidade de fazer instantâneos ou criar uma nova instância clonada.
fonte
No meu caso, usei esta documentação para associar um par de chaves à minha instância do Elastic Beanstalk
Configurando instâncias do servidor Amazon EC2 com Elastic Beanstalk
fonte
Você pode adicionar uma nova chave à instância usando o seguinte comando:
Você pode configurar domain_alias em ~ / .ssh config
fonte
Não achei uma maneira fácil de adicionar um novo par de chaves pelo console, mas você pode fazer isso manualmente.
Basta colocar ssh na sua caixa do EC2 com o par de chaves existente. Depois edite as teclas ~ / .ssh / allowed_keys e adicione a nova chave em uma nova linha. Saia e ssh através da nova máquina. Sucesso!
fonte
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
fonte
Para ambientes Elasticbeanstalk, você pode aplicar um par de valores-chave a uma instância em execução como esta:
fonte
Você pode realmente adicionar um par de chaves na página de configuração do beanstalk elástico. Ele reinicia sua instância para você e tudo funciona.
fonte