Muitas falhas de autenticação para *nome de usuário*

Muitas falhas de autenticação para *nome de usuário*

Eu tenho uma conta hostgator com acesso ssh habilitado. Ao tentar fazer upload do arquivo de chave .pub gerado com este comando:

rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys

Eu continuo recebendo:

Desconexão recebida de 111.222.33.44: 2: Muitas falhas de autenticação para nome de usuário
rsync: conexão fechada inesperadamente (0 bytes recebidos até agora) [remetente]
erro rsync: erro inexplicável (código 255) em io.c(601) [remetente=3.0.7]

Eu estive brincando anteriormente com o ssh até obter uma falha de autenticação. Mas agora parece que o contador de falhas de autenticação não zera (estou esperando há mais de 12 horas, o suporte técnico "supõe" que ele zera após 30 minutos a 1 hora, e outro cara me disse "ele zera toda vez que você tenta fazer login com o nome de usuário", caramba).

Isso está me deixando louco. Eu até configurei isso em um servidor personalizado Slicehost e tive menos problemas do que com esses caras.

Alguma dica? Talvez seja algo do lado do cliente e não do servidor.

Responder1

Isso geralmente écausado pela oferta inadvertida de múltiplas chaves SSHpara o servidor. O servidor rejeitará qualquer chave depois que muitas chaves forem oferecidas.

Você pode ver isso adicionando o -vsinalizador ao seu sshcomando para obter uma saída detalhada. Você verá que um monte de chaves são oferecidas, até que o servidor rejeite a conexão dizendo:"Muitas falhas de autenticação para [usuário]". Sem o modo detalhado, você verá apenas a mensagem ambígua"Conexão redefinida por peer".

Para evitar que chaves irrelevantes sejam oferecidas, você deve especificar isso explicitamente em cada entrada de host no ~/.ssh/configarquivo (na máquina cliente), adicionando IdentitiesOnlyassim:

Host www.somehost.com
  IdentityFile ~/.ssh/key_for_somehost_rsa
  IdentitiesOnly yes
  Port 22

Se você usar o agente ssh, será útil executar ssh-add -Dpara limpar as identidades.

Se você não estiver usando nenhuma configuração de hosts ssh, deverá especificar explicitamente a chave correta no sshcomando, assim:

ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/

Nota: o parâmetro 'IdentitiesOnly yes' precisava estar entre aspas.

ou

ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/

Responder2

Encontrei uma maneira mais fácil de fazer isso (se estiver usando autenticação por senha):

ssh -o PubkeyAuthentication=no [email protected]

Isso força a autenticação sem chave. Consegui fazer logon imediatamente.

Referência

Responder3

Eu também estava recebendo esse erro e descobri que isso estava acontecendo porque o servidor estava configurado para aceitar até 6 tentativas:

/etc/ssh/sshd_config
...
...
#MaxAuthTries 6

Além de definir o arquivo IdentitiesOnly yesem seu ~/.ssh/configarquivo, você tem algumas outras opções.

  1. Aumente o MaxAuthTries(no servidor ssh)
  2. exclua alguns dos pares de chaves que você possui em seu ~/.ssh/diretório e executessh-add -D
  3. vincular explicitamente uma chave a um determinado host em seu ~/.ssh/configarquivo

Igual a:

host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. Provavelmente não é uma boa maneira de fazer isso, pois enfraquece um pouco o seu servidor ssh, já que agora ele aceitará mais chaves em uma determinada tentativa de conexão. Pense em vetores de ataque de força bruta aqui.

  2. É uma boa opção presumir que você possui chaves desnecessárias e que podem ser excluídas permanentemente.

  3. E a abordagem de definir IdentitiesOnly é provavelmente a forma preferida de lidar com esse problema!

Responder4

Se você receber o seguinte erro SSH:

$ Received disconnect from host: 2: Too many authentication failures for root

Isso pode acontecer se você tiver (padrão em meu sistema) cinco ou mais arquivos de identidade DSA/RSA armazenados em seu diretório .ssh e se a opção '-i' não estiver especificada na linha de comando.

O cliente ssh primeiro tentará fazer login usando cada identidade (chave privada) e em seguida solicitará autenticação de senha. No entanto, o sshd interrompe a conexão após cinco tentativas incorretas de login (novamente, o padrão pode variar).

Se você tiver várias chaves privadas em seu diretório .ssh, poderá desativar a "Autenticação de chave pública" na linha de comando usando o argumento opcional '-o'.

Por exemplo:

$ ssh -o PubkeyAuthentication=no root@host

informação relacionada