
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-rsa
ou comssh-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.pub
as ssh-pubkey?
Responder2
Se algo assim acontecer, eu recomendaria verificar fileencryption
e fileformat
no bomb
ViM. 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 dos
ou 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.