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

2

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

sudo adduser myuser
sudo usermod -aG sudo myuser

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

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

Eu 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 eu desmembrou o usuário e criou outro usuário. Desta vez, criou o arquivo 'authorized_keys' com nano ao invés do Vim e funcionou.

Alguém experimentou isso?

    
por justinnoor.io 15.01.2017 / 06:43

3 respostas

1

Provavelmente você colou errado.

  • Começa com ssh-rsa ou com ssh-ed25519 ?
  • Tem um espaço antes (não deve)
  • As maiúsculas / minúsculas são preservadas?
  • há algum espaço antes de qualquer comentário no final da linha?

antes de colar qualquer coisa no vim, você deve usar :set paste , pois ela desativa todas as macros ativas possíveis / autoindent / ...

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

    
por 02.04.2017 / 23:16
1

Se algo assim acontecer, eu recomendaria a verificação fileencryption , fileformat e bomb no ViM. Compare os dois arquivos, o que você editou com o nano e o que você editou com o vim. Abra-os com o vim e verifique isso:

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

:set ff? Formato de arquivo dos ou unix . os têm diferentes finais de linha do que o unix.

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

    
por 02.04.2017 / 22:15
0

myuser deve ter acesso a .ssh e keyfile. Verifique quem é o dono deles.

    
por 15.01.2017 / 14:51