Login no servidor ssh: permissão negada, tente novamente


9

Estou tentando fazer login no meu servidor ssh usando um nome de usuário e senha, mas recebo este erro depois de inserir a senha correta:

Permission denied, please try again.

Posso fazer login usando uma pubkey em outra máquina, mas NÃO desabilitei a autenticação de senha regular. A única coisa que desabilitei foi o logon root.

Aqui está o meu arquivo sshd_config:

# Arquivo de configuração gerado por pacote
# Veja a página de manual sshd_config (5) para detalhes

# Quais portas, IPs e protocolos ouvimos
Porta 22
# Use essas opções para restringir a quais interfaces / protocolos o sshd se ligará
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocolo 2
# HostKeys para protocolo versão 2
Chave do host / etc / ssh / ssh_host_rsa_key
Chave do host / etc / ssh / ssh_host_dsa_key
Chave do host / etc / ssh / ssh_host_ecdsa_key
#A separação de privilégios está ativada por segurança
UsePrivilegeSeparation sim

# Vida útil e tamanho da chave do servidor efêmera da versão 1
KeyRegenerationInterval 3600
ServerKeyBits 768

# Exploração madeireira
SyslogFacility AUTH
INFO LogLevel

# Autenticação:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

Autenticação RSA sim
PubkeyAuthentication yes
#AuthorizedKeysFile% h / .ssh / allowed_keys

# Não leia os arquivos ~ / .rhosts e ~ / .shosts do usuário
IgnoreRhosts sim
# Para que isso funcione, você também precisará de chaves de host em / etc / ssh_known_hosts

RhostsRSAAuthentication no
# similar para a versão 2 do protocolo
Autenticação baseada em host não
# Remova o comentário se você não confiar em ~ / .ssh / known_hosts para RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# Para habilitar senhas vazias, mude para yes (NÃO RECOMENDADO)
PermitEmptyPasswords não

# Altere para yes para ativar senhas de resposta a desafios (cuidado com problemas com
# alguns módulos e threads de PAM)
ChallengeResponseAuthentication no

# Altere para no para desativar as senhas em texto não criptografado
PasswordAuthentication yes

# Kerberos opções 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI opções
#GSSAPIAuthentication no
#GSSAPICleanupCredentials sim

X11Encaminhamento sim
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive sim
#UseLogin no

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# Permitir que o cliente passe variáveis ​​de ambiente local
AcceptEnv LANG LC_ *

Subsistema sftp / usr / lib / openssh / sftp-server

# Defina como 'yes' para ativar a autenticação PAM, o processamento da conta,
# e processamento de sessão. Se isso estiver ativado, a autenticação PAM será
# ser permitido por meio do ChallengeResponseAuthentication e
# PasswordAuthentication. Dependendo da sua configuração do PAM,
# A autenticação PAM via ChallengeResponseAuthentication pode ignorar
# a configuração de "PermitRootLogin sem senha".
# Se você quiser que a conta PAM e as verificações de sessão sejam executadas sem
# Autenticação PAM, ative-a, mas defina PasswordAuthentication
# e ChallengeResponseAuthentication para 'não'.
UsePAM sim 
IgnoreUserKnownHosts no
PasswordAuthentication yes

Adicionei as duas últimas linhas em uma tentativa mais recente de fazê-lo funcionar. (Eu os tenho nos meus outros vps, e eles trabalham lá)

Aqui está a lista do diretório ~ / .ssh / do meu usuário:

ls -la /home/skerit/.ssh
16 total
drwx ------ 2 skerit skerit 4096 25/06/2011 15:11.
drwxr-xr-x 4 skerit skerit 4096 07-07-2011 21:05 ..
-rw-r - r-- 1 skerit skerit 1882 2011-06-25 15:15
-rw-r - r-- 1 skerit skerit 884 23/06/2011 22:59 

Esta é a saída de / usr / sbin / sshd -d:

debug1: userauth-request para o serviço skerit do usuário método ssh-connection none
debug1: tentativa 0 falhas 0
debug1: PAM: inicializando para "skerit"
debug1: PAM: configurando PAM_RHOST para "82.197.70.70"
debug1: PAM: configurando PAM_TTY para "ssh"
debug1: userauth-request para o serviço skerit do usuário método ssh-connection publickey
debug1: tentativa 1 falhas 0
debug1: teste se pkalg / pkblob são aceitáveis
debug1: Verificando o arquivo da lista negra /usr/share/ssh/blacklist.RSA-2048
debug1: Verificando o arquivo da lista negra /etc/ssh/blacklist.RSA-2048
debug1: temporariamente_use_uid: 1000/1000 (e = 0/0)
debug1: tentando o arquivo de chave pública /home/skerit/.ssh/authorized_keys
debug1: fd 4 limpando O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporariamente_use_uid: 1000/1000 (e = 0/0)
debug1: tentando o arquivo de chave pública /home/skerit/.ssh/authorized_keys2
debug1: Não foi possível abrir as chaves autorizadas '/home/skerit/.ssh/authorized_keys2': esse arquivo ou diretório não existe
debug1: restore_uid: 0/0
Publickey com falha para skerit da porta 82.197.70.70 57154 ssh2
debug1: userauth-request para a senha do método ssh-connection do serviço skerit do usuário
debug1: tentativa 2 falhas 1
debug1: PAM: falha na autenticação da senha para skerit: falha na autenticação
Senha com falha para skerit da porta 82.197.70.70 57154 ssh2 

Tentei então acessar o servidor ssh a partir do servidor ssh (localmente) usando o mesmo nome de usuário e senha, e funcionou. Este estava no arquivo auth.log:

8 de julho 12:21:50 vpsnl1 sshd [27298]: debug1: não foi possível abrir o arquivo de chave '/ etc / ssh / ssh_host_ecdsa_key': esse arquivo ou diretório não existe
8 de julho 12:21:50 vpsnl1 sshd [27298]: erro: Não foi possível carregar a chave do host: / etc / ssh / ssh_host_ecdsa_key
8 de julho 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): falha na autenticação; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 user =
skerit
8 de julho 12:23:50 vpsnl1 sshd [27439]: Servidor escutando na porta 0.0.0.0 22.
8 de julho 12:23:50 vpsnl1 sshd [27439]: Servidor escutando na :: porta 22.
8 de julho 12:24:07 vpsnl1 sshd [27458]: erro: Não foi possível carregar a chave do host: / etc / ssh / ssh_host_ecdsa_key
8 de julho 12:24:14 vpsnl1 sshd [27458]: senha aceita para o skerit da porta 127.0.0.1 porta 57667 ssh2
8 de julho 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: session): sessão aberta para o skerit do usuário por (uid = 0)
8 de julho 12:24:25 vpsnl1 sshd [27471]: Desconectado recebido de 127.0.0.1: 11: desconectado pelo usuário
8 de julho 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): sessão fechada para o usuário skerit 

Você poderia adicionar seu ssh-config?
Bart De Vos

Tudo bem, arquivo de configuração adicionado!
Skerit

Que tal permissões no .ssh? Você poderia postar ls -la ~ / .ssh no servidor?
Mkudlacek

Ok, eu adicionei a lista dos arquivos do usuário que estou tentando fazer login como.
Skerit

1
As teclas Authorized_keys não devem ser legíveis pelo mundo, eu acho, mas não explica por que você não pode fazer login com senha. Você pode fazer su skeritna sua conta?
Mkudlacek

Respostas:


9

Você tem certeza de que a conta de usuário que você está tentando acessar está configurada corretamente? Se você efetuar login como root no sistema, poderá acessar sua conta de usuário?

# su - username

O que você vê nos seus logs após uma falha na tentativa de conexão? Em muitos sistemas, o sshd fará logon em algo /var/log/secureou /var/log/auth.log. Além disso, observe que você PasswordAuthenticationativou, mas ChallengeResponseAuthenticationdesativou. Você vê o mesmo comportamento se habilitar ChallengeResponseAuthentication?

Aqui estão algumas etapas gerais de diagnóstico a serem usadas quando você tiver problemas com o ssh:

  • Ative o diagnóstico detalhado no ssh:

    ssh -v host.example.com
    

    Isso fará com que o cliente produza uma variedade de mensagens de diagnóstico à medida que negocia a conexão. Isso geralmente fornece uma pista para o problema.

  • Execute o servidor no modo de depuração.

    No seu servidor, pare o sshd e execute-o na linha de comando da seguinte maneira:

    /usr/sbin/sshd -d
    

    Isso produzirá um log de depuração detalhado stderrque frequentemente conterá informações úteis.

Se nenhuma dessas opções o ajudar a descobrir o que está acontecendo, você adicionaria a saída à sua pergunta?


Ok, eu adicionei a saída. Basicamente: quando eu TRO um login remoto ele diz que a senha não é bom, quando eu tentar um login local ele diz que a senha está ok e me deixa entrar.
skerit

2
Ele ERA a senha. Alterei a senha por meio de um console da Web (algum aplicativo java) e, mesmo que a senha inserida fosse IDÊNTICA ao que eu digitei no meu console de massa, de alguma forma os valores ascii devem ter sido diferentes. Eu mudei para algo mais simples, entrei da maneira correta através de massa e mudei novamente. Agora funciona.
Skerit 8/07

@skerit - provavelmente teve um problema de codificação de caracteres, então - talvez UTF8 vs ASCII?
Warren

Fico feliz em ouvir as coisas estão funcionando!
Larsks

Teve o mesmo problema que o @skerit depois de fazer uma alteração de senha no console da Web do DigitalOcean.
21716 Daniel
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.