Como configuro o acesso SSH para uma instância do Amazon EC2?


87

Preciso de acesso SSH a uma instância do Amazon EC2 executando o Ubuntu 10.4. Tudo o que tenho é o nome de usuário e a senha da Amazon. Alguma ideia?


2
Não se esqueça de executar chmod 400 my_private_key.pem.txt após baixá-lo.
Peter Kaminski

Respostas:


159

Basicamente, você precisa de um arquivo de chave privada para fazer o login em seu EC2 via SSH. Siga estas etapas para criar um:

  • Acesse https://console.aws.amazon.com/ec2/home e faça login em sua conta existente da Amazon.
  • Clique em "Key Pairs" em LHS ou https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Você deve ver a lista de KEYs geradas por você (ou durante o processo de criação do EC2).
    • Clique em "Criar par de chaves" se não encontrar nenhuma ou se perdeu sua chave privada.
    • Insira um nome exclusivo e pressione Enter.
    • Um painel de download aparecerá para você salvar a chave privada, salve-a.
    • Guarde-o em algum lugar com a permissão de arquivo "0600"
  • Clique em "Instâncias" no LHS ou https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Você deve ver a lista de instâncias ec2, se não encontrar nenhuma, crie uma.
    • Clique na máquina EC2 e anote o endereço DNS público.
  • Abra seu Terminal (no Linux) e digite o seguinte comando
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- o nome de usuário root foi evitado nas versões mais recentes, com base em sua seleção de distribuição ec2-userou ubuntucomo seu nome de usuário.
    • pressione Enter
    • É isso aí.

6
Você provavelmente não pode logar como root diretamente via ssh. Você terá que usar uma conta não-root, como ec2-user então 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Depois de tentar conectar, ele me disse que deveria usar ubuntulogin em vez de root. Aparentemente, eu tenho uma instância do ubuntu server 12.04.
Vasiliy Stavenko

3
Eu criei com sucesso a conta SSH, a seguir é como fazer upload de arquivos usando SCP com a conta criada ?? Quando tento fazer o upload usando o SCP, aparece "Permission denied (publickey)".
Ashok KS

5
ainda recebo esta massagem "Permissão negada (chave pública)." Por que é que?
Kasun Kariyawasam

2
Vocês estão recebendo "Permissão negada (chave pública)." pode estar usando Elastic Beanstalk. Nesse caso, você precisa entrar em EB env Config, Security e escolher o novo par de chaves. Serão criadas novas instâncias EC2 que aceitam a chave. E o nome de usuário é ec2-userou talvez ubuntu, mas não root.
Jorge Orpinel

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

apenas use em ubuntuvez de root. Seu problema será resolvido. Felicidades!


12

PASSO 1) Baixe as chaves privadas atribuídas à sua máquina ec2 (que é apenas uma vez baixado quando criado. Então recomendado para confirmar em algum lugar)

PASSO 2) e disparar os seguintes comandos,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Documento oficial : Conectando-se às suas instâncias Linux / Unix usando SSH


7

Observe que o usuário atual para 13.04 é "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Você precisa criar um par de chaves primeiro - faça isso usando seu console EC2. Em seguida, use sua chave privada para SSH no servidor (o nome de usuário éec2-user ) usando um cliente SSH de sua escolha.

Uma vez dentro, você pode emitir um sudo su -para obter root se quiser (nota: você não pode logar como root diretamente).


4

Se você estiver usando MacOS, deve criar / editar o arquivo de configuração SSH (~ / .ssh / config) e colocar algo como:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Em seguida, para se conectar a qualquer uma das instâncias EC2:

ssh MYNAME.amazonaws.com

Nada mais!


e se eu tiver uma chave multi-pal para diferentes regiões, como us-east-1.pem e us-west-2.pem
Haseeb

1

Para configurar o Ubuntu no AWS, siga as seguintes etapas:

  1. Faça login no Amazon Web Services e selecione EC2 .
  2. Escolha Iniciar instância e siga o assistente selecionando a imagem certa (Ubuntu), tipo de instância, configurando a rede VPC e sub-rede, armazenamento e permitindo acesso SSH em grupos de segurança . Em seguida, inicie .
  3. Pela primeira vez, você provavelmente precisará configurar o par de chaves e atribuí-lo à instância. Você também pode criar um par de chaves em pares de chaves . Depois de criado, baixe o arquivo PEM e mantenha-o em um local seguro.
  4. Depois que a instância for iniciada, aguarde até que ela seja inicializada e esteja em execução .

Para acessar a instância via SSH, execute:

  1. Conecte-se ao Linux especificando seu arquivo PEM, por exemplo

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Certifique-se de que seu arquivo PEM tenha 600 permissões ( chmod 600 file.pem).

Solução de problemas

Se você estiver executando a instância VPC e seu grupo de segurança estiver correto (com as regras certas) e ainda não funcionar, na seção VPC , verifique sua sub-rede que deve ser anexada ao seu VPC (ambos usados por sua instância) e configure nova regra na Tabela de Rotas que tem 0.0.0.0/0como Destino e seu Gateway de Internet como Alvo .

Para obter mais detalhes, verifique: Solução de problemas de conexão com sua instância

Veja também: Possíveis razões para tempo limite ao tentar acessar a instância EC2


1

1) Primeiro chmodo .pem filede restringir os permissons arquivo como abaixo

chmod 400 my-key-pair.pem

2) Em seguida, sshcom os seguintes comandos diretamente da .sshpasta

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Nota: - Para navegar na .sshpasta. Primeiro pressione Ctrl + Hpara exibir todos os arquivos ocultos e finalmentecd .ssh


0

O problema pode ser não fazer login como o usuário correto para o seu SO Distro. Para certos novos AMI, o nome de usuário pode não ser "ubuntu", mas "ec2-user". Para Amazon Linux, por exemplo, acredito que o usuário seja "ec2-user". Eric Hammond dá exemplos aqui: http://alestic.com/2014/01/ec2-ssh-username

Minha sugestão, tente:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Se você tiver o AMI errado, você pode querer apenas reiniciar a máquina completamente para ter uniformidade entre seus clusters. Se este for o seu problema, você provavelmente vai querer o mesmo SO Distro, pelo menos para as suas máquinas Linux.


0

Fazer o que é sugerido em todas essas respostas não é suficiente. Em cada instância, você vê um grupo de segurança. Ao iniciar uma nova instância, você terá isso definido como padrão. Você precisa editar o grupo de segurança e adicionar a porta ssh dele. Posteriormente, você precisará adicionar as portas 8080, 8443, 80, 443 também quando quiser hospedar seu site.


0

Aceitei a oferta da AWS para usar os grupos de segurança padrão que incluíam portas 'All Trafic'.

E, depois de muitas e muitas vezes tentar conectar na minha nova instância ec2, acabei de perceber que deveria editar meu grupo de segurança usado e adicionar manualmente à porta 22 de entrada e saída (ssh)!

Espero que ajude !


0

Primeira permissão de alteração do arquivo pem por

chmod 400 path/to/key_pair.pem

Dentro do arquivo ~ / .ssh / config adicione as seguintes linhas, no topo do arquivo

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

O nome do host obtém o IP ou link do servidor, o nome do usuário obtém o nome do servidor e o arquivo de identidade é baixado da AWS quando você cria a instância. Basta executar o seguinte comando no terminal

ssh AWS

e divirta-se!

Nota : Para navegar na .sshpasta. Primeiro pressione Ctrl + Hna pasta inicial para exibir todos os arquivos ocultos e, finalmente,cd .ssh


0

Certifique-se de que essas coisas estejam sob controle

  1. a chave privada deve ter 400 permissões

  2. Certifique-se de que a porta 22 esteja aberta para a instância AWS que você está tentando acessar.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = ip público da sua instância
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.