AVISO: DESPROTEGIDA PRIVATE KEY arquivo! ao tentar SSH para Amazon EC2 Instância
-
03-07-2019 - |
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.
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 ??p>
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 comandols
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.