como SSH para EC2 sem usar explicitamente a chave pem?

17

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

Eu criei uma nova instância do EC2 + chave pem de configuração. Da máquina do windows, quando eu uso putty + pem key - eu posso ssh.

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

Através do servidor Ubuntu - tentei o SSH para a instância ec2 sem sucesso: %código%. Se eu explícito usar a chave pem, funciona: %código%  - Por favor, note que eu devo usar o caminho direto para a chave, caso contrário, eu vou chmod 600 /home/ubuntu/.ssh/*

Por favor avise. Obrigado!

    
por user798562 15.03.2013 / 15:25

5 respostas

17

Adicione a chave EC2 pem ao SSH

ssh-add ~ / .ssh / KEY_PAIR_NAME.pem

    
por 28.06.2014 / 15:10
14

Por padrão, o cliente SSH procurará as chaves chamadas id_rsa , id_dsa e id_ecdsa in ~/.ssh/ . Se a sua chave não tiver esse nome, você precisará especificá-la na linha de comando com -i , como você fez, ou especificá-la na configuração do cliente.

Você pode adicionar algo assim a ~/.ssh/config para selecionar automaticamente essa chave ao enviar o SSH para o EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa
    
por 15.03.2013 / 18:02
1

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

    
por 15.03.2013 / 15:33
1

Você pode usar ssh-agent e ssh-add para evitar ter que especificar a chave privada explicitamente.

Você pode colocar os comandos em .profile ou .bashrc para que sejam executados sempre que você efetuar login. Você pode encontrar um exemplo de script de inicialização na parte inferior de este post .

    
por 15.03.2013 / 15:38
0

O cliente ssh procura identify file com base no conjunto de configurações em /etc/ssh/ssh_config . Assim, você pode especificar o arquivo de identidade lá e lembrar que você pode ter vários arquivos de identidade listados no arquivo de configuração do cliente ssh. Da página man 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 a chave RSA, por exemplo, o local padrão é ~ / .ssh / id_rsa. Como Andrei Mikhaltsov sugeriu, você pode colocar sua chave privada em / home / ubuntu / ssh / id_rsa e será capaz de se conectar 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 seu cliente ssh no parâmetro IdentityFile .

    
por 15.03.2013 / 16:00