Eu tenho um sistema em que o SSH ainda pede a senha, embora:
- Minha chave pública está corretamente no
authorized_keys
arquivo no servidor remoto. - Minha chave privada é armazenada como
id_rsa
no meu.ssh
diretório. - As permissões no cliente local e no servidor remoto estão corretas. Isso inclui os diretórios pessoais, os
.ssh
diretórios, oauthorized_keys
arquivo e os próprios arquivos de chave. - O SELinux está desabilitado no cliente e no servidor.
Além disso, /var/log/secure
no servidor relata o seguinte erro em cada tentativa de login:
sshd[17110]: error: Could not get shadow information for <USER>
onde substituí o nome de usuário real pela string <USER>
.
Qual poderia ser a causa disso e/ou como faço para que minhas chaves SSH funcionem?
O problema era que as chaves públicas/privadas não correspondiam no sistema do cliente . Eu consertei isso executando:
Isso gerará a chave pública correspondente à chave privada existente e a gravará no
id_rsa.pub
arquivo, correspondendo novamente às chaves pública/privada.Não consegui encontrar a resposta para o meu problema em várias das respostas do Stack Exchange que encontrei, então decidi fazer/responder minha própria pergunta aqui. Como isso aconteceu? O que aconteceu foi que eu tinha chaves SSH funcionando no passado, mas em algum momento acidentalmente rodaram
ssh-keygen
novamente. Isso criou um novo par de chaves públicas/privadas. Percebi isso e tentei corrigi-lo colocando de volta minhas antigas chaves privadas. Como o servidor ainda tinha a chave pública antiga dentro doauthorized_keys
arquivo, nada precisava ser alterado ali. Infelizmente, não alterei a chave pública no lado do cliente, levando à situação atual.