AVISO: FICHEIRO CHAVE PRIVADO NÃO PROTEGIDO! ao tentar SSH na instância do Amazon EC2

I'm working to set up Panda on an Amazon EC2 instance. I set up my account and tools last night and had no problem using SSH to interact with my own personal instance, but right now I'm not being allowed permission into Panda's EC2 instance. Getting Started with Panda

Estou recebendo o seguinte erro:

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Eu escolhi o meu par de chaves para 600, a fim de entrar em minha instância pessoal na noite passada, e experimentei por muito tempo definir as permissões para 0 e até gerar novas strings de chave, mas nada parece estar funcionando.

Qualquer ajuda seria uma grande ajuda!


Hm, parece que, a menos que as permissões estejam definidas para 777 no diretório, o script ec2-run-instances não consegue encontrar meus arquivos-chave. Eu sou novo no SSH, então eu posso estar esquecendo de algo.

123
Você precisa dar comandos u = rw e go = chmod para o arquivo - leitura/escrita apenas para o usuário (ou apenas ler/400). Espero que isso ajude.
adicionado o autor Aniket Thakur, fonte
@MikeNereson: sinta-se livre para editá-lo, é assim que melhoramos as coisas por aqui
adicionado o autor Stu Thompson, fonte
Tem certeza de que você configurou para 0600 (octal) e não 600 (decimal)?
adicionado o autor hyde, fonte
título terrível para esta questão.
adicionado o autor MikeNereson, fonte
chmod 400 ~/.ssh/id_rsa Referência: stackoverflow.com/a/9270753/2082569
adicionado o autor atulkhatri, fonte
O ec2-run-instances deve exigir apenas um nome de par de chaves, que é algo que vive do lado da Amazon. Você só deve estar usando sua chave privada real (aquela no disco) quando você SSH. Que erro você está recebendo de ec2-run-instances?
adicionado o autor user27619, fonte

6 Respostas

Eu escolhi o meu par de chaves para 600 a fim de entrar na minha instância pessoal ontem à noite,

E é assim que deve ser.

Na documentação do EC2 , temos "Se você" usando o OpenSSH (ou qualquer cliente SSH razoavelmente paranóico), então você provavelmente precisará configurar as permissões deste arquivo para que ele seja legível apenas por você. " A documentação do Panda que você vincula a links para a documentação da Amazon, mas realmente não transmita o quanto isso é importante.

A ideia é que os arquivos dos pares de chaves sejam como senhas e precisem ser protegidos. Portanto, o cliente ssh que você está usando exige que esses arquivos sejam protegidos e que apenas sua conta possa lê-los.

Configurar o diretório para 700 deve ser suficiente, mas o 777 não vai doer, desde que os arquivos sejam 600.

Quaisquer problemas que você esteja tendo são do lado do cliente, por isso, certifique-se de incluir informações sobre o sistema operacional local com quaisquer perguntas de acompanhamento!

149
adicionado
O link @StuThompson para a documentação do EC2 parece estar morto. Você pode por favor atualizar?
adicionado o autor Aniket Thakur, fonte
Nevermind atualizou o link. Obrigado.
adicionado o autor Aniket Thakur, fonte
@tobixen: Dois anos chegando, mas ... a solução "correta" seria colocar a chave em um usuário dedicado e permitir que os usuários do grupo acessem o sudo para executar esse comando como o usuário dedicado.
adicionado o autor Stu Thompson, fonte
fazendo chmod 700 filenmane.pem funcionou, obrigado
adicionado o autor Rich Fox, fonte
Eu acabei de entrar em uma situação hoje onde eu quero que o arquivo de chaves seja legível por grupo (usando ssh não para login pessoal, mas para executar um script em um servidor remoto, usuário dedicado no servidor remoto para este propósito, authorized_keys bloqueado tão somente o script será executado e várias pessoas no servidor de origem deverão ter acesso para executar o script). Ah, bem, eu acho que a solução simples é colocar cópias em ~/.ssh/para todos os usuários que devem ter acesso - ou preencher authorized_keys com todas as chaves pessoais.
adicionado o autor tobixen, fonte

Make sure that the directory containing the private key files is set to 700

chmod 700 ~/.ec2
40
adicionado
Eu usei isso no arquivo .pem e funcionou para mim.
adicionado o autor CGTheLegend, fonte
Alguma razão especial pela qual você deseja ter privilégios de execução no arquivo?
adicionado o autor Zoltán, fonte
@ Zoltán é um diretório, não um arquivo.
adicionado o autor avmohan, fonte
Obrigado, isso funciona para mim também.
adicionado o autor Rubyrider, fonte
Esta resposta chega ao ponto :)
adicionado o autor Populus, fonte

Para corrigir isso, 1) você precisará redefinir as permissões de volta ao padrão:

sudo chmod 600 ~/.ssh/id_rsa  sudo chmod 600 ~/.ssh/id_rsa.pub

Se você está recebendo outro erro: Tem certeza de que deseja continuar se conectando (sim/não)? sim Falha ao adicionar o host à lista de hosts conhecidos (/home/geek/.ssh/known_hosts).

2) Isso significa que as permissões nesse arquivo também estão definidas incorretamente e podem ser ajustadas com isso:

sudo chmod 644 ~/.ssh/known_hosts

3) Finalmente, você pode precisar ajustar as permissões do diretório também:

sudo chmod 755 ~/.ssh

Isso deve fazer com que você volte a funcionar.

15
adicionado

O arquivo de chave privada deve ser protegido. No meu caso eu tenho usado a autenticação public_key por um longo tempo e eu costumava definir a permissão como 600 (rw- --- ---) para a chave privada e 644 (rw- r-- r--) e para a pasta .ssh na pasta inicial, você terá 700 permissões (rwx --- ---). Para configurar isso, vá para a pasta inicial do usuário e execute o seguinte comando


Set the 700 permission for .ssh folder

chmod 700 .ssh


Set the 600 permission for private key file

chmod 600 .ssh/id_rsa


Set 644 permission for public key file

chmod 644 .ssh/id_rsa.pub
5
adicionado

Mantenha sua chave privada, chave pública, known_hosts no mesmo diretório e tente fazer login como abaixo:

ssh -I(small i) "hi.pem" ec2-[email protected]---.us-west-2.compute.amazonaws.com

  • O mesmo diretório no sentido cd/Usuários/prince/Desktop Agora digite o comando ls Você deveria ver ** pem **. ppk known_hosts

Nota: Você tem que tentar entrar no mesmo diretório. Ou então, você obterá permissão de erro negado, pois não pode levar o arquivo .ppm do seu diretório atual.

1
adicionado

Estou pensando em outra coisa, se você está tentando fazer o login com um nome de usuário diferente que não existe, esta é a mensagem que você receberá.

Então eu suponho que você pode estar tentando ssh com o usuário ec2, mas lembro-me recentemente que a maioria dos AMIs centos, por exemplo, estão usando o usuário centos em vez do usuário ec2

então se você é ssh -i arquivo.pem centos @ public_IP por favor me diga que você está usando o ssh com o nome de usuário correto, caso contrário pode ser um forte motivo para você ver tal mensagem de erro mesmo com as permissões corretas em seu ~/.ssh/id_rsa ou file.pem

0
adicionado