amazon web services - with - Tentando SSH em uma instância do Amazon Ec2-erro de permissão




winscp aws (18)

É apenas um problema de permissão com a sua chave aws pem.

Apenas mude a permissão da chave pem para 400 usando o comando abaixo.

chmod 400 pemkeyname.pem

Se você não tem permissão para alterar a permissão de um arquivo, você pode usar o comando sudo como abaixo.

sudo chmod 400 pemkeyname.pem

Espero que isso funcione bem.

Esta é provavelmente uma pergunta estupidamente simples para alguns :)

Eu criei uma nova instância do Linux no Amazon EC2 e, como parte disso, fiz o download do arquivo .pem para permitir o SSH.

Quando tentei ssh com:

ssh -i myfile.pem <public dns>

Eu tenho:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

Seguindo este post tentei chmod +600 o arquivo pem, mas agora quando eu ssh acabei de receber:

Permission denied (publickey).

Que erro de menino de escola estou fazendo aqui? O arquivo .pem está na minha pasta pessoal (em osx). As permissões são assim:

[email protected]   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem

A seguir estão as etapas simples para o usuário do Linux se conectar ao servidor usando o arquivo .pem:

Passo 1: Para o local do arquivo pem e copie-o para o local .ssh.

cp example.pem ~/.ssh/example.pem

Etapa 2: alterar a permissão

chmod 400 ~/.ssh/example.pem

Passo 3: Execute o seguinte comando

ssh -i ~/.ssh/example.pem [email protected]

Como este comando é muito longo, você deve criar o alias disso usando os seguintes comandos:

 vim ~/.bashrc

Escreva o mesmo comando da seguinte maneira no último.

alias sshConnect='ssh -i ~/.ssh/example.pem [email protected]'

Agora reinicie seu sistema e use o sshConnect para conectar-se ao seu servidor.



Apenas altere a permissão do arquivo pem para 0600 permitindo apenas o usuário permitido e ele funcionará como charme.

sudo chmod 0600 myfile.pem

E então tente ssh vai funcionar perfeitamente.

ssh -i myfile.pem <<ssh_user>>@<<server>>

Chaves SSH e práticas recomendadas de permissão de arquivos:

  • Diretório .ssh - 0700 (somente pelo proprietário)
  • chave privada / arquivo .pem - 0400 (somente leitura pelo proprietário)
  • chave pública / arquivo .pub - 0600 (ler e escrever somente pelo proprietário)

    chmod XXXX file/directory


Dê uma olhada neste artigo . Você não usa o DNS público, mas sim o formulário

ssh -i your.pem [email protected]

onde o nome está visível no seu painel da AMI


Eu sei que esta pergunta já foi respondida, mas para aqueles que já experimentaram todas e você ainda está recebendo a irritante "Permission denied (publickey)". Tente executar seu comando com o SUDO. É claro que esta é uma solução temporária e você deve definir permissões corretamente, mas pelo menos isso permitirá que você identifique que seu usuário atual não está executando com os privilégios que você precisa (como você assumiu)

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com

Depois de fazer isso, você receberá uma mensagem como esta:

Please login as the user "ec2-user" rather than the user "root"

Que também é escassamente documentado. Nesse caso, basta fazer isso:

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user

E você terá o glorioso:

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|

Eu sei que isso é muito tarde para o jogo ... mas isso sempre funciona para mim:

passo 1

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

passo 2, simplesmente ssh in :)

ssh [email protected]<instance public dns/ip>

por exemplo

ssh [email protected]

Espero que isso ajude alguém.


Faça um chmod 400 yourkeyfile.pem Se sua instância for o Amazon linux então use ssh -i yourkeyfile.pem ec2-usuario @ ip para ubuntu ssh -i yourkeyfile.pem ubuntu @ ip para centos ssh -i yourkeyfile.pem centos @ ip


Lista de controle:

  1. Você está usando o arquivo .pem de chave privada correto?

  2. Suas permissões estão configuradas corretamente? (As AMIs da minha marca Amazon funcionam com 644, mas o Red Hat deve ser pelo menos 600 ou 400. Não sei sobre o Ubuntu.)

  3. Você está usando o nome de usuário correto na sua linha ssh? Amazon-branded = "ec2-user", Red Hat = "root", Ubuntu = "ubuntu". O usuário pode ser especificado como "ssh -i pem usename @ hostname" OU "ssh -l nome de usuário -i pem hostname"


No terminal Mac, fazendo "chmod 400 xyz.pem" não me ajudou, ele continuou dizendo permissão negada. Para usuários do Ubuntu eu gostaria de sugerir

  1. ssh-add xyz.pem
  2. ssh -i xyz.pem [email protected] (observe que o usuário é o Ubuntu)

No windows você pode ir para as propriedades do arquivo pem e ir para a aba de segurança, em seguida, para avançar o botão.

remova a herança e todas as permissões. então conceda-se o controle total. depois de tudo SSL não lhe dará o mesmo erro novamente.


O problema é ter mod errado no arquivo.

Facilmente resolvido executando -

chmod 400 mykey.pem

Extraído das instruções da Amazon -

Seu arquivo de chave não deve ser visível publicamente para que o SSH funcione. Use este comando se necessário: chmod 400 mykey.pem


O problema para mim era que meu arquivo .pem estava em uma das minhas partições NTFS. Eu mudei para a minha partição linux (ext4).

Deu as permissões necessárias executando:

chmod 400 my_file.pem

E funcionou.


Ok cara, a única coisa que funcionou para mim foi:

  1. Alterar permissões da chave

    chmod 400 mykey.pem

  2. Certifique-se de efetuar login usando o usuário ec2 e o endereço ec2-99 ... correto. O endereço ec2-99 está na parte inferior do console aws quando você está conectado e vendo sua instância listada

    ssh -i mykey.pem [email protected]


Pode haver três razões por trás desse erro.

  1. Você está usando uma chave errada.
  2. Sua chave não tem as permissões corretas. Você precisa chmod para 400.
  3. Você está usando o usuário errado. Imagens do Ubuntu têm um usuário ubuntu , o AMI da Amazon é ec2-user e as imagens debian têm raiz ou admin

Você provavelmente está usando o nome de usuário errado para fazer o login:

  • a maioria das imagens do Ubuntu tem um usuário do ubuntu
  • A AMI da Amazon é ec2-user
  • a maioria das imagens Debian tem root ou admin

Para fazer login, você precisa ajustar seu comando ssh:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

HTH


ssh -i /.pem user @ host-machine-IP

Eu acho que é porque ou você digitou credenciais erradas ou, você está usando uma chave pública em vez de uma chave privada ou, suas permissões de porta estão abertas para ALL em ssh. Isso é ruim para a Amazon.





permissions