Estou alugando um VPS rodando CentOS Stream 8, para o qual configurei a autenticação SSH pubkey para o usuário "foo". Eu acesso via PuTTY no Windows.
Recentemente aluguei outro VPS rodando Rocky Linux 9, e configurei o sshd de forma idêntica, copiando o /home/foo/.ssh/authorized_keys
arquivo do VPS antigo para o novo. Desta forma bastou clonar a configuração do perfil PuTTY, alterando apenas o endereço IP do antigo para o novo, e reutilizando a chave PPK do PuTTY.
No entanto, quando faço SSH para o novo servidor via PuTTY, recebo o erro:
Using username "foo".
Authenticating with public key "[email protected]"
Server refused public-key signature despite accepting key!
Using keyboard-interactive authentication.
Password:
e tenho que digitar a senha do usuário "foo". No entanto, gostaria de abandonar a autenticação baseada em senha, como no servidor antigo.
As chaves privada e pública são iguais em ambas as extremidades. SELinux não está interferindo aqui. As permissões de ~/.ssh
e ~/.ssh/authorized_keys
estão corretas.
Observe que o SSHing via pubkey do novo servidor para si mesmo funciona perfeitamente. Claramente, neste caso, ele usa id_rsa
, não a chave PPK do PuTTY.
dmesg
e /var/log/messages
não mostram nada de útil.
Qual poderia ser o problema?
Nota: esta não é uma duplicata de Servidor recusou assinatura de chave pública apesar de aceitar key - putty , pois nenhuma das respostas se aplica.
A sua versão do PuTTY está atualizada?
Atualmente, o protocolo SSH está sendo alterado para usar algoritmos de hash/assinatura mais novos e mais fortes com chaves RSA existentes.
ssh -Q key-sig
irá mostrá-los comorsa-sha2-256
ersa-sha2-512
para substituir o antigossh-rsa
.A versão do sshd no RHEL/Rocky 9.x exigirá o uso desses algoritmos de hash mais fortes por padrão. As chaves em si estão boas, não haverá necessidade de substituí-las. Os hashes em questão não estão incorporados no material da chave, mas são calculados durante a negociação da conexão, de modo que o algoritmo de hash pode ser alterado sem substituir as chaves.
Também é possível permitir os algoritmos hash antigos, mas a opção mais segura é atualizar seu PuTTY para a versão mais recente, que era 0,81 no momento da redação deste artigo.
Se você deseja/precisa permitir conexões de entrada de clientes SSH mais antigos que não possuem as
rsa-sha2-*
combinações de algoritmos disponíveis para RHEL/Rocky 9.x e não podem fazer com que os clientes mudem para, por exemplo, chaves ECDSA, você terá que definir a política de criptografia para:Algumas fontes também sugerem a alternativa:
Também funciona, mas não é recomendado para esse fim porque é um exagero: também permite vários outros métodos criptográficos fracos.
Referências: