Pergunta

Eu estou trabalhando para criar Panda em uma instância Amazon EC2. Eu configurei minha conta e ferramentas de ontem à noite e não tinha problema utilizando o SSH para interagir com o meu próprio exemplo pessoal, mas agora eu não estou sendo permitido permissão para instância EC2 da Panda. Introdução ao 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 chmoded meu par de chaves de 600, a fim de entrar no meu exemplo pessoal na noite passada, e experimentou longamente definir as permissões para 0 e até mesmo gerando novas cadeias de chave, mas nada parece estar funcionando.

Qualquer ajuda em tudo seria uma grande ajuda!


Hm, parece que a menos que as permissões são definidas para 777 no diretório, o script ec2-run-instances é incapaz de encontrar meus keyfiles. Eu sou novo para SSH para que eu possa ser vista para alguma coisa.

Foi útil?

Solução

Eu chmoded meu par de chaves de 600, a fim de entrar no meu exemplo pessoal na noite passada,

E esta é a forma como é suposto ser.

A partir da documentação EC2 temos " Se você estiver usando OpenSSH (ou qualquer cliente SSH razoavelmente paranóico), então você provavelmente precisará definir as permissões deste arquivo para que seja legível apenas por você ". a documentação Panda você link para links para documentação do Amazon mas realmente não transmite o quão importante disso tudo é.

A idéia é que os arquivos de par de chaves são como senhas e precisam ser protegidos. Assim, o cliente ssh você está usando exige que esses arquivos sejam garantidos e que só a sua conta pode lê-los.

Definir o diretório para 700 realmente deve ser o suficiente, mas 777 não vai doer, enquanto os arquivos são 600.

Todos os problemas que você está tendo são do lado do cliente, por isso não deixe de incluir informações OS local com qualquer seguimento perguntas!

Outras dicas

Certifique-se de que o diretório que contém os arquivos de chave privada é definida como 700

chmod 700 ~/.ec2

Para corrigir isso, 1) você terá que 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 quer continuar de ligação (sim / não)? sim Falha ao adicionar o host à lista de máquinas conhecidas (/home/geek/.ssh/known_hosts).

2) Isto significa que as permissões nesse arquivo também são definidas de forma incorreta, e pode ser ajustado com este:

sudo chmod 644 ~/.ssh/known_hosts

3) Finalmente, você pode precisar de ajustar as permissões do diretório, bem como:

sudo chmod 755 ~/.ssh

Esta deverá fazê-lo voltar a funcionar.

O arquivo de chave privada deve ser protegida. No meu caso tenho vindo a utilizar a autenticação public_key por um longo tempo e eu utilizado para definir a permissão como 600 (rw --- ---) para a chave privada e 644 (rw r-- r--) e para a pasta .ssh em casa pasta terá 700 permissão (rwx --- ---). Para definir isso, vá para a pasta pessoal do usuário e execute o comando seguinte


Defina o 700 permissão para .ssh pasta

chmod 700 .ssh


Defina o 600 permissão para arquivo de chave privada

chmod 600 .ssh/id_rsa


Set 644 permissão para arquivo de chave pública

chmod 644 .ssh/id_rsa.pub

Eu também tenho o mesmo problema, mas eu corrigi-lo, alterando a minha permissão chave arquivo para 600.

sudo chmod 600 /path/to/my/key.pem

Link: http://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/

No Windows, Tente usar git bash e usar os seus comandos de Linux lá. abordagem fácil

chmod 400 *****.pem

ssh -i "******.pem" ubuntu@ec2-11-111-111-111.us-east-2.compute.amazonaws.com

Mantenha a sua chave privada, chave pública, known_hosts no mesmo diretório e tentar o login como abaixo:

ssh -I(small i) "hi.pem" ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
  • O mesmo diretório no sentido, cd /Users/prince/Desktop. Agora digite o comando ls e você deve ver **.pem **.ppk known_hosts

Nota:. Você tem que tentar o login a partir do mesmo diretório ou você vai ter uma permissão negada erro, uma vez que não é possível encontrar o arquivo .pem do seu diretório de presente


Se você quer ser capaz de SSH a partir de qualquer diretório, você pode adicionar o seguinte para você ~/.ssh/config arquivo ...

Host your.server
HostName ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ec2/id_rsa-gsg-keypair
IdentitiesOnly yes

Agora você pode SSH para o servidor, independentemente de onde o diretório é simplesmente digitando ssh your.server (ou qualquer nome que você colocar após "Host").

Eu estou pensando em outra coisa, se você está tentando fazer o login com um nome diferente que não existe esta é a mensagem que você terá.

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

então se você estiver ssh -i file.pem centos@public_IP por favor me diga que você aretrying para ssh com o nome de usuário direita de modo que esta pode ser uma razão forte de você ver essa mensagem de erro, mesmo com as permissões corretas sobre o seu ~ / .ssh / id_rsa ou file.pem

Apenas uma nota para qualquer um que se depara com o seguinte:

Se você está tentando SSH com uma chave que foi compartilhado com você, por exemplo:

ssh -i /path/to/keyfile.pem user@some-host

Onde keyfile.pem é a chave privada / pública compartilhada com você e você está usando para se conectar, certifique-se de salvá-lo em ~/.ssh/ e chmod 777.

Tentando usar o arquivo quando ele foi salvo em outro lugar na minha máquina estava dando erro do OP. Não tenho certeza se ele está diretamente relacionado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top