Iniciar sesión en el servidor ssh: permiso denegado, por favor intente nuevamente

9

Estoy intentando iniciar sesión en mi servidor ssh con un nombre de usuario y contraseña, pero aparece este error después de ingresar la contraseña correcta:

Permission denied, please try again.

Sin embargo, puedo iniciar sesión con una clave pública en otra máquina, pero NO he desactivado la autenticación de contraseña normal. Lo único que deshabilité fueron los inicios de sesión de root.

Aquí está mi archivo sshd_config:

# Archivo de configuración generado por el paquete
# Consulte la página de manual de sshd_config (5) para más detalles

# Qué puertos, IP y protocolos escuchamos
Puerto 22
# Use estas opciones para restringir a qué interfaces / protocolos se unirá sshd
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocolo 2
# HostKeys para la versión 2 del protocolo
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
# La separación de privilegios está activada por seguridad
UsePrivilegeSeparation sí

# Duración y tamaño de la clave de servidor efímera versión 1
KeyRegenerationInterval 3600
ServerKeyBits 768

# Inicio sesión
SyslogFacility AUTH
INFO LogLevel

# Autenticación:
LoginGraceTime 120
PermitRootIniciar sesión no
StrictModes sí

RSA Autenticación sí
Autenticación Pubkey sí
#AuthorizedKeysFile% h / .ssh / optional_keys

# No lea los archivos ~ / .rhosts y ~ / .shosts del usuario
Ignorar Fantasmas sí
# Para que esto funcione, también necesitará claves de host en / etc / ssh_known_hosts

RhostsRSA Autenticación no
# similar para la versión 2 del protocolo
Autenticación basada en el host no
# Descomente si no confía en ~ / .ssh / known_hosts para RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# Para habilitar contraseñas vacías, cambie a sí (NO RECOMENDADO)
PermitEmptyPasswords no

# Cambie a sí para habilitar las contraseñas desafío-respuesta (tenga cuidado con los problemas con
# algunos módulos y subprocesos PAM)
ChallengeResponseAuthentication no

# Cambie a no para deshabilitar las contraseñas de texto sin cifrar en túnel
Contraseña Autenticación sí

# Opciones de Kerberos 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd sí
#KerberosTicketCleanup sí

# Opciones de GSSAPI
#GSSAPIAutenticación no
#GSSAPICleanupCredentials sí

X11 Reenvío sí
X11DisplayOffset 10
PrintMotd no
PrintLastLog sí
TCPKeepAlive sí
#UsarIniciar sesión no

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

# Permitir al cliente pasar variables de entorno local
AcceptEnv LANG LC_ *

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

# Establezca esto en 'sí' para habilitar la autenticación PAM, el procesamiento de la cuenta,
# y procesamiento de sesiones. Si esto está habilitado, la autenticación PAM
# se permitirá a través de ChallengeResponseAuthentication y
# Autenticación de contraseña. Dependiendo de su configuración PAM,
# La autenticación PAM a través de ChallengeResponseAuthentication puede omitir
# la configuración de "PermitRootLogin sin contraseña".
# Si solo desea que la cuenta PAM y las comprobaciones de sesión se ejecuten sin
# Autenticación PAM, luego habilite esto pero establezca PasswordAuthentication
# y ChallengeResponseAuthentication a 'no'.
UsePAM sí 
IgnoreUserKnownHosts no
Contraseña Autenticación sí

He agregado las últimas 2 líneas en un último intento de hacer que funcione. (Los tengo en mis otros vps, y trabajan allí)

Aquí está la lista del directorio ~ / .ssh / de mi usuario:

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

Esta es la salida de / usr / sbin / sshd -d:

debug1: userauth-request para el usuario skerit service ssh-connection method none
debug1: intento 0 fallas 0
debug1: PAM: inicializando para "skerit"
debug1: PAM: configurando PAM_RHOST en "82.197.70.70"
debug1: PAM: configurando PAM_TTY en "ssh"
debug1: userauth-request para el usuario skerit service ssh-connection method publickey
debug1: intento 1 fallos 0
debug1: prueba si pkalg / pkblob son aceptables
debug1: Comprobando el archivo de la lista negra /usr/share/ssh/blacklist.RSA-2048
debug1: comprobación del archivo de lista negra /etc/ssh/blacklist.RSA-2048
depuración1: temporalmente_uso_usuario: 1000/1000 (e = 0/0)
debug1: probando el archivo de clave pública /home/skerit/.ssh/authorized_keys
debug1: fd 4 borrando O_NONBLOCK
debug1: restore_uid: 0/0
depuración1: temporalmente_uso_usuario: 1000/1000 (e = 0/0)
debug1: probando el archivo de clave pública /home/skerit/.ssh/authorized_keys2
debug1: No se pudieron abrir las claves autorizadas '/home/skerit/.ssh/authorized_keys2': No existe tal archivo o directorio
debug1: restore_uid: 0/0
Publickey fallido para skerit del puerto 82.197.70.70 57154 ssh2
debug1: userauth-request para el usuario skerit service ssh-connection method password
debug1: intento 2 fallos 1
debug1: PAM: error de autenticación de contraseña para skerit: error de autenticación
Error de contraseña para skerit del puerto 82.197.70.70 57154 ssh2 

Luego intenté iniciar sesión en el servidor ssh DESDE el servidor ssh (localmente) usando EL MISMO nombre de usuario y contraseña, y funcionó. Esto estaba en el archivo auth.log:

8 de julio 12:21:50 vpsnl1 sshd [27298]: debug1: no se pudo abrir el archivo de clave '/ etc / ssh / ssh_host_ecdsa_key': No existe tal archivo o directorio
8 de julio 12:21:50 vpsnl1 sshd [27298]: error: no se pudo cargar la clave de host: / etc / ssh / ssh_host_ecdsa_key
8 de julio 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): error de autenticación; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 usuario =
skerit
8 de julio 12:23:50 vpsnl1 sshd [27439]: servidor escuchando en 0.0.0.0 puerto 22.
8 de julio 12:23:50 vpsnl1 sshd [27439]: Servidor escuchando en :: puerto 22.
8 de julio 12:24:07 vpsnl1 sshd [27458]: error: no se pudo cargar la clave del host: / etc / ssh / ssh_host_ecdsa_key
8 de julio 12:24:14 vpsnl1 sshd [27458]: contraseña aceptada para skerit desde el puerto 127.0.0.1 57667 ssh2
8 de julio 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: sesión): sesión abierta para el usuario skerit por (uid = 0)
8 de julio 12:24:25 vpsnl1 sshd [27471]: desconexión recibida de 127.0.0.1: 11: desconectado por el usuario
8 de julio 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): sesión cerrada para el usuario skerit 
skerit
fuente
¿Podría agregar su ssh-config?
Bart De Vos
Muy bien, ¡archivo de configuración agregado!
skerit
¿Qué hay de los permisos en .ssh? ¿Podría publicar ls -la ~ / .ssh en el servidor?
mkudlacek
Ok, agregué la lista de los archivos del usuario con el que intento iniciar sesión.
skerit
1
Authorized_keys no debería ser legible en todo el mundo, creo, pero no explica por qué no puede iniciar sesión con contraseña. ¿Se puede hacer su skeriten su cuenta?
mkudlacek

Respuestas:

9

¿Está seguro de que la cuenta de usuario a la que intenta acceder está configurada correctamente? Si inicia sesión como root en el sistema, ¿puede acceder sua la cuenta de usuario?

# su - username

¿Qué ves en tus registros después de un intento de conexión fallido? En muchos sistemas, sshd iniciará sesión en algo /var/log/secureo /var/log/auth.log. Además, noto que ha PasswordAuthenticationhabilitado pero ChallengeResponseAuthenticationdeshabilitado. ¿Ves el mismo comportamiento si habilitas ChallengeResponseAuthentication?

Estos son algunos pasos de diagnóstico generales para usar cuando tiene problemas de SSH:

  • Habilitar diagnósticos detallados en ssh:

    ssh -v host.example.com
    

    Esto hará que el cliente envíe una variedad de mensajes de diagnóstico mientras negocia la conexión. Esto a menudo proporcionará una pista del problema.

  • Ejecute el servidor en modo de depuración.

    En su servidor, detenga sshd, luego ejecútelo desde la línea de comando de esta manera:

    /usr/sbin/sshd -d
    

    Esto producirá un inicio de sesión de depuración detallado stderrque a menudo contendrá información útil.

Si ninguno de estos le ayuda a descubrir qué está pasando, ¿agregaría el resultado a su pregunta?

larsks
fuente
Ok, agregué el resultado. Básicamente: cuando Tro un inicio de sesión remoto, se dice que la contraseña no es buena, cuando intento un inicio de sesión local dice que la contraseña está bien y me deja entrar.
Skerrit
2
Se ERA la contraseña. Cambié la contraseña a través de una consola web (alguna aplicación de Java) y aunque la contraseña ingresada era IDÉNTICA a lo que escribí en mi consola de masilla, de alguna manera los valores ASCII deben haber diferido. Lo cambié a algo más simple, inicié sesión de la forma correcta a través de masilla y lo volví a cambiar. Ahora funciona.
skerit
@skerit - probablemente tuvo un problema de codificación de caracteres, entonces - ¿quizás UTF8 vs ASCII?
warren
Me alegra saber que las cosas funcionan.
Larsks
Tuve el mismo problema que @skerit después de hacer un cambio de contraseña desde la consola web de DigitalOcean.
Daniel