Acesso SSH negado quando o arquivo 'authorized_keys' é criado com o Vim

Acesso SSH negado quando o arquivo 'authorized_keys' é criado com o Vim

Criei uma instância ec2 com uma AMI Ubuntu 16.04. Criei um usuário sudo para esta AMI com:

sudo adduser myuser
sudo usermod -aG sudo myuser

Então tentei dar ao usuário acesso ssh com um par de chaves rsa que eu já tinha. Criei um diretório .ssh para o novo usuário:

mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Copiei e colei minha chave pública em 'authorized_keys'. Então saí do ec2 e testei minha conexão com:

cd ~/.ssh
ssh -i "mypem.pem" [email protected]

Recebi um erro que dizia 'Acesso negado (chave pública)'

Então descartei o usuário e criei outro usuário. Desta vez, criei o arquivo 'authorized_keys' com nano em vez de Vim e funcionou.

Alguém já experimentou isso?

Responder1

Provavelmente você colou errado.

  • Começa com ssh-rsaou com ssh-ed25519?
  • Tem um espaço antes (NÃO deveria)
  • As letras maiúsculas/minúsculas são preservadas?
  • existe um espaço antes de qualquer comentário no final da linha?

antes de colar qualquer coisa no vim, você deve usar :set paste, pois ele desativa qualquer possível macro de autocompletar/autoindent/... ativa.

Outra coisa é que você escreveu mykey.pem, que é a extensão usual para arquivos openssl, não para chaves ssh. Tem certeza de que usou o id_rsa.pub/ id_ed25519.pubas ssh-pubkey?

Responder2

Se algo assim acontecer, eu recomendaria verificar fileencryptione fileformatno bombViM. Compare os dois arquivos, aquele que você editou com o nano e aquele que você editou com o vim. Abra-os com o vim e verifique isto:

:set bomb? Esta é a marca de ordem de bytes. Geralmente definido quando você edita um arquivo UTF-8 com notepad.exe no Windows. Muitas vezes tive problemas com isso.

:set ff? Formato de arquivo dosou unix. dos têm finais de linha diferentes do unix.

:set fenc? A codificação do arquivo: talvez um editor mude para latin1 em vez de UTF-8.

Responder3

myuser deve ter acesso a .ssh e keyfile. Verifique quem é o proprietário deles.

informação relacionada