Autenticação de chave pública SSH - servidor aceita chave, mas a autenticação não é bem-sucedida

3

Estou ajudando um amigo que tem problemas para se conectar usando autenticação de chave pública a um servidor mantido por mim. A autenticação de chave pública funciona bem para alguns outros usuários. É claro que a chave pública do meu amigo está no arquivo authorized_keys no servidor.

debug1: Host 'xxxxx' is known and matches the RSA host key.
debug1: Found key in /home/xxx/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xxx/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/xxx/.ssh/id_dsa
debug1: Trying private key: /home/xxx/.ssh/id_ecdsa
debug1: Next authentication method: password

A seguinte linha não faz sentido para mim

Server accepts key: pkalg ssh-rsa blen 279

Já que parece que o servidor acha que a chave pública está perfeitamente correta, então por que ela continua a autenticação de senha em vez de autenticar o usuário?

    
por nip3o 11.02.2012 / 12:35

3 respostas

5

Acredito que você está mostrando a saída de logs / depuração do lado do cliente. Eu olharia para os logs do lado do servidor, pois isso geralmente dá mais detalhes sobre o por que o servidor rejeitou uma tentativa de autenticação de chave pública.

Por exemplo permissões inseguras nos diretórios home ou .ssh dos usuários.

    
por 11.02.2012 / 13:10
3

No meu caso, o problema era que o usuário que estava tentando se conectar era o root, e eu tinha desativado o login root do ssh (o que provavelmente todos deveriam fazer). Portanto, verifique se seu amigo está tentando se conectar por meio da conta de usuário não raiz correta.

    
por 22.04.2013 / 22:53
0

Eu experimentei isso recentemente com a interface SSH da Gerrit. O problema era que meu agente SSH local oferecia um monte de chaves diferentes para o servidor Gerrit, e depois de algum limite o servidor apenas se recusava a aceitar outras chaves (mas ainda respondia com o Server accepts key ). Eu não sei se esse comportamento é específico para o Gerrit ou uma coisa genérica do OpenSSH.

A correção foi forçar a seleção da chave certa em ~/.ssh/config :

Host gerrit.example.org
  IdentityFile ~/path/to/my_key
  IdentitiesOnly yes

Depois de certificar-se de que ~/path/to/my_key.pub existe (pode ser criado com ssh-keygen -f ~/path/to/my_key -y > ~/path/to/my_key.pub ), o agente ssh poderia fornecer a chave sem ter que reinserir a frase secreta, mas não forneceu outras chaves.

    
por 12.07.2014 / 02:17