SSH não permite login com chave pública para usuários que não sejam root

SSH não permite login com chave pública para usuários que não sejam root

Eu tenho uma instalação do Ubuntu 22.04.1 e estou usando a autenticação pubkey + chave privada para fazer login no ssh.

Então aqui estão os passos que tomei

  1. Primeiro criei um par de chaves no meu mac.
  2. Então entrei no servidor e editei /etc/ssh/sshd_configpara adicionar uma nova porta para o login ssh
  3. Abri aquela porta no firewall (UFW) e fechei o padrão 22.
  4. Fiz um ssh-copy-id -i /path/to/public/key root@hostpara copiar a chave pública para o servidor.
  5. Então, /etc/ssh/sshd_confignovamente, para proibir a autenticação por senha
  6. Reiniciei o sshd e testei a conexão com o root. A conexão funcionou perfeitamente.
  7. Reativei a autenticação por senha e testei o ssh com um dos meus usuários sudo (não root) usando usuário + senha na nova porta. A conexão funcionou perfeitamente.
  8. Fiz uma ssh-copy-id -i /path/to/public/key user@hostcópia da chave pública para o servidor em .ssh/authorized_keys para esse usuário específico. O procedimento não retornou erros e relatou que uma chave foi copiada. Entrei no servidor e verifiquei novamente o arquivoauthorized_keys e a chave estava realmente lá.
  9. Então, /etc/ssh/sshd_confignovamente, para proibir a autenticação por senha
  10. Reiniciei o sshd e testei a conexão com o usuário.É aqui que estou tendo um problemaO usuário não consegue fazer login. Quando tento, recebo um erro: Permission denied (publickey). Quando reativo a autenticação por senha, consigo me conectar perfeitamente, mas ainda sem as chaves. Apenas uma conexão padrão de nome de usuário + senha.

O par de chaves é testado porque uso exatamente a mesma combinação para o usuário root. Quero desativar o Permitrootlogin, mas não consigo. Alguma ideia?

Editar: segui o conselho de @Jos e fiz um login detalhado usando o anúncio root usando o usuário. Aqui estão os 2 resultados. Filtramos todas as informações e chaves confidenciais, IPs, etc. e converti os resultados em capturas de tela:

Conexão de depuração raiz usando verbose

e o usuário (que não consegue se conectar):

Conexão de depuração do usuário usando verbose

Editar: @steeldriver sugeriu fazer um namei para verificar se os arquivosauthorized_keys são excessivamente permissivos. Aqui está a saída:

| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root             root             /
drwxr-xr-x root             root             home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys

informação relacionada