Como altero o par de chaves da minha instância ec2 no console de gerenciamento da AWS? Posso parar a instância, posso criar um novo par de chaves, mas não vejo nenhum link para modificar o par de chaves da instância.
Como altero o par de chaves da minha instância ec2 no console de gerenciamento da AWS? Posso parar a instância, posso criar um novo par de chaves, mas não vejo nenhum link para modificar o par de chaves da instância.
Respostas:
Esta resposta é útil no caso de você não ter mais acesso SSH ao servidor existente (ou seja, você perdeu sua chave privada).
Se você ainda tiver acesso SSH, use uma das respostas abaixo.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Aqui está o que eu fiz, graças à postagem no blog de Eric Hammond:
/dev/xvda1
volume (vamos chamá-lo de volume A) - veja aqui/dev/xvdf
(ou /dev/sdf
)SSH para a nova micro instância e monte o volume A para /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Copiar ~/.ssh/authorized_keys
para/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
arquivoÉ isso aí.
mkdir /mnt/tmp
e então mount /dev/xvdf /mnt/tmp
deve fazer o truque para o # 5. E não esqueça que a etapa 13. provavelmente está rm ~/.ssh/known_hosts
nas caixas das quais você está se conectando.
.ssh/authorized_keys
arquivo original .
Depois que uma instância é iniciada, não há como alterar o par de chaves associado à instância em um nível de metadados, mas você pode alterar a chave ssh usada para conectar-se à instância.
Há um processo de inicialização na maioria das AMIs que baixa a chave pública ssh e a instala em um arquivo .ssh / allowed_keys, para que você possa efetuar o ssh como esse usuário usando a chave ssh privada correspondente.
Se você deseja alterar a chave ssh usada para acessar uma instância, edite o arquivo allowed_keys na própria instância e converta-a em sua nova chave pública ssh.
O arquivo allowed_keys está no subdiretório .ssh, no diretório inicial do usuário no qual você está efetuando login. Dependendo da AMI em execução, ela pode estar em uma das seguintes opções:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
Depois de editar um arquivo allowed_keys, sempre use um terminal diferente para confirmar que você é capaz de efetuar ssh na instância antes de desconectar da sessão que está usando para editar o arquivo. Você não quer cometer um erro e se proteger completamente da instância.
Enquanto você pensa em pares de chaves ssh no EC2, recomendo fazer upload de sua própria chave pública ssh pessoal no EC2, em vez de fazer com que a Amazon gere o par de chaves para você.
Aqui está um artigo que escrevi sobre isso:
Carregamento de chaves ssh pessoais no Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
Isso se aplicaria apenas a novas instâncias que você executa.
.pem
arquivo de chave privada no meu Mac, mas ssh -i key.pem
não é autenticado (permissão negada (chave pública)). No console de gerenciamento do EC2, em Nome do par de chaves, ele não lista nada. Isso é alarmante para mim. Como posso definir isso? Parece baseado no Console de Gerenciamento que nenhum par de chaves que eu configurei foi atribuído à instância!
Execute este comando depois de baixar o seu AWS pem.
ssh-keygen -f YOURKEY.pem -y
Em seguida, despeje a saída em authorized_keys
.
Ou copie o arquivo pem para sua instância da AWS e execute os seguintes comandos
chmod 600 YOURKEY.pem
e depois
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Instruções do suporte do AWS EC2:
isso salvará o arquivo updated_keys autorizado
agora tente abrir uma nova sessão SSH para sua instância usando sua nova chave pai
Quando você confirmar que poderá fazer o SSH na instância usando o novo par de chaves, você poderá vi .ssh / allowed_key e excluir a chave antiga.
Resposta à observação de Shaggie:
Se você não conseguir se conectar à instância (por exemplo, a chave está corrompida), use o console da AWS para desanexar o volume ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) e reconecte-o à instância de trabalho. Em seguida, altere a chave no volume e reconecte-o à instância anterior.
Percebi que, quando gerenciado pelo Elastic Beanstalk, você pode alterar seu par de chaves EC2 ativo. Em Elastic Beanstalk> Configuração> Segurança, escolha a nova chave no menu suspenso Par de chaves do EC2 . Você verá esta mensagem perguntando se tem certeza:
EC2KeyName: as alterações nas configurações da opção EC2KeyName não terão efeito imediato. Cada uma das instâncias existentes do EC2 será substituída e suas novas configurações entrarão em vigor.
Minha instância já foi encerrada quando eu fiz isso. Em seguida, foi iniciado, finalizado e iniciado novamente. Aparentemente, "substituir" significa encerrar e criar uma nova instância. Se você modificou seu volume de inicialização, primeiro crie uma AMI e especifique-a no mesmo formulário Elastic Beanstalk> Configuração> Instâncias que o ID da AMI personalizada . Isso também avisa sobre a substituição das instâncias do EC2.
Depois de modificar seu par de chaves EC2 e o ID da AMI personalizada, e depois de receber avisos sobre ambos, clique em Salvar para continuar.
Lembre-se de que o endereço IP muda quando a instância é recriada; portanto, você precisa recuperar um novo endereço IP do console do EC2 para usar ao se conectar via SSH.
Passei por essa abordagem e, depois de algum tempo, consegui fazê-la funcionar. A falta de comandos reais tornou difícil, mas eu descobri. NO ENTANTO - uma abordagem muito mais fácil foi encontrada e testada logo após:
Se as etapas abaixo forem seguidas, economizará muito tempo e não será necessário interromper a instância em execução.
É isso. Enjoy :)
Acredito que a abordagem mais simples é:
Caso esteja usando a plataforma ElasticBeanstalk, você pode alterar as chaves indo:
Isso encerrará a instância atual e criará uma nova com as chaves / configurações escolhidas.
Existem dois cenários nesta pergunta: -
1) Você não tem acesso ao arquivo .pem e é por isso que deseja criar um novo.
2) Você tem o. acesso ao arquivo pem com você, mas você deseja alterar ou criar um novo arquivo .pem para fins de vulnerabilidade ou segurança .
Portanto, se você perdeu as chaves, pode rolar para cima e ver outras respostas . Mas se você simplesmente alterar seu arquivo .pem por motivos de segurança, siga as etapas:
1) Acesse o login do console da AWS e crie um novo arquivo .pem na seção de pares de chaves ali. Ele baixará automaticamente o arquivo .pem no seu PC
2) mude a permissão para 400 se você estiver usando Linux / ubuntu, pressione o comando abaixo
chmod 400 yournewfile.pem
3) Gere RSA do arquivo baixado recentemente em sua máquina local
ssh-keygen -f yournewfile.pem -y
4) Copie o código RSA daqui
5) Agora SSH para sua instância via arquivo .pem anterior
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Dê espaço para uma a duas linhas e cole o RSA copiado do novo arquivo aqui e salve o arquivo
7) Agora seu novo arquivo .pem está vinculado à instância em execução
8) Se você deseja desativar o acesso ao arquivo .pem anterior, basta editar o
sudo vim ~/.ssh/authorized_keys
e remova ou altere o RSA anterior a partir daqui.
Nota: - Remova com cuidado para que o RSA recém-criado não seja alterado.
Dessa maneira, você pode alterar / conectar o novo arquivo .pem à sua instância em execução.
Você pode revogar o acesso ao arquivo .pem gerado anteriormente por motivos de segurança.
Espero que ajude!
A solução mais simples é copiar o conteúdo de
~/.ssh/id_rsa.pub
nas chaves autorizadas da sua instância da AWS em
~/.ssh/authorized_keys
Isso permitirá que você faça o ssh na instância do EC2 sem especificar um arquivo pem para o comando ssh. Você pode remover todas as outras chaves depois de testar a conexão a ela.
Se você precisar criar uma nova chave para compartilhá-la com outra pessoa, poderá fazer isso com:
ssh-keygen -t rsa
que criará o arquivo key.pem privado e você poderá obter a chave pública com:
ssh-keygen -f private_key.pem -y > public_key.pub
Qualquer pessoa que possua private_key.pem poderá se conectar com
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
quando não consigo nem o SSH aws instance?
Você não precisa girar o dispositivo raiz e alterar a chave pública SSH authorized_keys
. Pois isso pode utilizar dados do usuário para adicionar as chaves ssh a qualquer instância. Para isso, é necessário criar um novo KeyPair usando o console da AWS ou através do ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Isso irá gerar uma chave pública para o seu novo SSH KeyPair, copie essa chave pública e use-a no script abaixo.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
Após a reinicialização, a máquina terá a chave de publicação SSH especificada. Remova os dados do usuário após a primeira reinicialização. Leia mais sobre os dados do usuário na inicialização .
Aviso: Não esqueça de limpar os dados do usuário novamente. Caso contrário, essa tecla será pressionada a cada início da instância. Instruções passo a passo .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Eu tentei abaixo as etapas e funcionou sem parar a instância. Meu requisito era: como alterei minha máquina cliente, o arquivo .pem antigo não estava permitindo que eu fizesse logon na instância ec2.
Você verá suas chaves antigas nesse arquivo.
ssh-keygen -f YOUR_PEM_FILE.pem -y Gerará uma chave. Acrescente a chave a ~ / .ssh / allowed_keys abertas na etapa 1. Não há necessidade de excluir a chave antiga.
No console da AWS, crie um novo par de chaves. Guarde na sua nova máquina. Renomeie-o para o arquivo pem antigo - o motivo é que o arquivo pem antigo ainda está associado à instância ec2 na AWS.
Tudo feito.
Posso fazer logon no AWS ec2 a partir da minha nova máquina cliente.
Você tem várias opções para substituir a chave da sua instância do EC2.
Como a primeira opção pode ser encontrada facilmente nas respostas ou no mecanismo de pesquisa de sua escolha, desejo me concentrar no Systems Manager.
Systems Manager
Automation
lado esquerdo.Execute Automation
AWSSupport-TroubleshootSSH
(geralmente está na última página)Você pode encontrar mais informações na documentação oficial da AWS
A resposta de Yegor256 funcionou para mim, mas pensei em adicionar alguns comentários para ajudar aqueles que não são tão bons em montar unidades (como eu!):
A Amazon permite que você escolha o nome do volume ao anexá-lo. Você usou um nome no intervalo de / dev / sda - / dev / sdp. As versões mais recentes do Ubuntu renomearão o que você colocar lá para / dev / xvd (x) ou algo nesse sentido.
Então, para mim, escolhi / dev / sdp como nome do nome da montagem na AWS, depois entrei no servidor e descobri que o Ubuntu havia renomeado meu volume para / dev / xvdp1). Tive então que montar a unidade - para mim tive que fazer assim:
mount -t ext4 xvdp1 /mnt/tmp
Depois de pular todos esses obstáculos, eu poderia acessar meus arquivos em / mnt / tmp
Isso funcionará apenas se você tiver acesso à instância em que deseja alterar / adicionar a chave. Você pode criar um novo par de chaves. Ou, se você já possui o par de chaves, pode colar a chave pública do novo par no arquivo allowed_keys na sua instância.
vim .ssh / allowed_keys
Agora você pode usar a chave privada desse par e efetuar login.
Espero que isto ajude.
se você não conseguir fazer login na VM e excluiu as chaves ssh e também poderá alterar o par de chaves do seu ec2 usando as etapas abaixo. Vá passo a passo 1) interrompa sua instância do ec2. 2) tire uma foto instantânea da VM e do armazenamento. 3) crie uma nova VM enquanto a cria, selecione seu instantâneo e crie a VM a partir do seu instantâneo. 4) enquanto a criação da VM baixa o seu par de chaves. 5) depois de sua VM UP, você pode ssh com um novo par de chaves e seus dados também voltarão.
O que você pode fazer...
Crie um novo perfil / função de instância que tenha a política AmazonEC2RoleForSSM anexada.
Anexe este perfil de instância à instância.
Obrigado pelas dicas pessoal. Definitivamente vou lembrá-los quando eu precisar descansar os pares de chaves. No entanto, no interesse da eficiência e da preguiça, inventei outra coisa:
Espero que isso possa ser útil para você e poupar algum tempo, além de minimizar a quantidade de cabelos brancos que você obtém em coisas como essa :)