como SSH para EC2 sem usar explicitamente a chave pem?


21

Eu tenho o Windows como meu sistema operacional principal. Usando o VMware player, eu configuro um servidor Ubuntu 12.4 como uma máquina convidada. O servidor Ubuntu tem usuário "ubuntu".

Criei uma nova instância do EC2 + chave de configuração do pem. Na máquina Windows, quando uso a tecla putty + pem - posso ssh.

Adicionei a chave pem ao meu servidor VMware Ubuntu (/home/ubuntu/.ssh/) Além disso, defino as seguintes permissões: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

Através do servidor Ubuntu - Tentei SSH para a instância EC2 sem sucesso: ssh ubuntu@EC2_IP Permission denied (publickey) . Se eu usar explicitamente a chave pem, funcionará: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - Observe que devo usar o caminho direto para a chave, caso contrário, receberei Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

Por favor informar. Obrigado!

Respostas:


18

Por padrão, o cliente SSH vai olhar para as teclas nomeados id_rsa, id_dsae id_ecdsaem ~/.ssh/. Se sua chave não tiver esse nome, você precisará especificá-la na linha de comando com a -iexecução ou especificá-la na configuração do cliente.

Você pode adicionar algo assim para ~/.ssh/configselecionar automaticamente esta tecla quando SSHing para EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa


2

Como você nomeia sua chave privada? Ele deve ter o nome do arquivo id_rsa padrão (renomeie o arquivo pem para /home/ubuntu/.ssh/id_rsa)


chamou eldad.pem (nome padrão da AWS). Renomeei para id_rsa e funcionou. existe uma maneira de mantê-lo no nome atual e ainda usá-lo?
user798562

Sim, Daniel já escreveu sobre isso em sua resposta :) #
Andrei Mikhaltsov 15/03

1

Você pode usar ssh-agente ssh-addevitar ter que especificar a chave privada explicitamente.

Você pode colocar os comandos no seu .profileou .bashrcpara que eles sejam executados toda vez que você efetuar login. Você pode encontrar um exemplo de script de inicialização na parte inferior desta postagem .


Eu fiz isso, mas quando eu reiniciar - eu preciso fazer isso novamente. Alguma maneira de evitar isso?
user798562

Editou minha resposta para incluir isso.
David Levesque 15/03

0

O cliente ssh procura com identify filebase na configuração definida em /etc/ssh/ssh_config. Portanto, você pode especificar o arquivo de identidade lá e lembre-se de ter vários arquivos de identidade listados no arquivo de configuração do cliente ssh. Na página de manual do ssh -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

Para chave RSA, por exemplo, o local padrão é ~ / .ssh / id_rsa. Como sugeriu Andrei Mikhaltsov, você pode colocar sua chave privada em / home / ubuntu / ssh / id_rsa e poderá conectar-se sem especificá-la na linha de comando. Se esse nome de arquivo já existir e contiver outra chave privada, você ainda poderá personalizar o arquivo de configuração do cliente ssh no IdentityFileparâmetro

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.