Tenho tentado estabelecer uma conexão SSH entre meu PC e um Raspberry Pi 4B com Ubuntu, o que só levou a
Permission denied (publickey)
Somente quando criei a chave pública do meu cliente usando ssh-keygen
e a digitei manualmente no /home/ubuntu/.ssh/authorized_keys
arquivo do servidor, consegui conectar com sucesso:
O único tipo de preparação que fiz antes das tentativas de conexão foi verificar se sshd
estava em execução e configurar o firewall:
sudo systemctl status sshd
sudo ufw allow ssh
Também tentei o mesmo com outra máquina servidora, que também é operada pelo Ubuntu, embora WSL, e o resultado foi o mesmo.
Então o que posso estar fazendo errado?
Esse é o resultado normal. Nunca acontece isso.
Com apenas
publickey
a autenticação habilitada, fazer com que o servidor adicione automaticamente chaves de cliente ao seu sistemaauthorized_keys
anularia completamente o objetivo do sistema – significaria que literalmente qualquer cliente poderia oferecer literalmente qualquer chave e conseguiria fazer login com ela.(Além disso, se você só criou uma chave usando ssh-keygen depois dessa tentativa, isso significa que você nem tinha uma chave que o servidor adicionaria, de qualquer forma.)
Você pode estar confuso
authorized_keys
comknown_hosts
o lado do cliente, onde o cliente adiciona "automaticamente" a chave do servidor (embora não seja totalmente automático: o cliente pede sua aprovação para cada chave de servidor que ele adiciona, o que não é algo que um servidor poderia fazer com chaves de cliente).Então, se você esperava se conectar e efetuar login usando uma chave, ela sempre precisará ser adicionada manualmente (digitando-a, habilitando temporariamente a autenticação de senha SSH ou transferindo de alguma outra forma).
Enquanto isso, se você esperava fazer login usando uma senha, então o problema não está nas chaves; a autenticação por senha não usa chaves, mas é simplesmente desabilitada no servidor
sshd_config
.