Permiso SSH denegado (clave pública), pero la raíz ssh funciona

15

Estoy tratando de configurar el acceso ssh para una cuenta de usuario que creé con chef en un servidor digital ocean ubuntu 12.04. Tenía las opciones configuradas en el océano digital para copiar automáticamente la clave ssh de mi mac cuando se crea la gotita.

Puedo ingresar como root sin problemas, pero mi otro usuario no puede autenticarse. Esto parece ser un problema común, y verifiqué algunas de las otras respuestas, y encontré este comando para obtener más información:

ssh -vvv -i id_rsa user@serverIP

Los registros para el usuario raíz (que tiene éxito) con ese comando son

depurar

1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp snip!
debug3: sign_and_send_pubkey: snip!
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

usuario que falla:

depurar

1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/evan/.ssh/id_dsa
debug3: no such identity: /Users/evan/.ssh/id_dsa: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.

Lo que para mí significa que la clave pública es incorrecta. Pero, si inicio sesión como usuario root y voy a home/otheraccount/.ssh/authorized_keys, puedo ver que mi clave ssh está allí. Pensé que tal vez había un error, así que lo hice, cp .ssh/authorized_keys ~/home/otheraccout/.ssh/authorized_keyspero eso no ayudó. No sé dónde más mirar.

mi etc/ssh/sshd_conig:

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
"sshd_config" 88L, 2508C
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

# GS

SAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM no
Banner /etc/ssh_banner

editar:

drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh
-rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys

Edit2:

Como se sugiere en los comentarios /var/log/authlog:

Apr 21 04:59:30 localhost sshd[586]: User deploy not allowed because account is locked
Apr 21 04:59:30 localhost sshd[586]: input_userauth_request: invalid user deploy [preauth]

Traté de hacer sudo usermod --expiredate -1 deployy volvióno changes

usuario2936314
fuente
1
¿Son correctos sus permisos? ~/home/otheraccount/.sshdebería tener 700y ~/home/otheraccount/.ssh/authorized_keysdebería tener 600permiso y ambos archivos deberían ser propiedad deotheraccount
clement
Creo que son correctos, la implementación es otra cuenta: drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh -rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys
user2936314
¿Cuáles son las líneas de registro en serverIP( /var/log/auth.log) cuando intenta iniciar sesión como deployusuario?
clemente
interesante, se queja de que el usuario está bloqueado, agregué los registros anteriores.
user2936314
no me deja editar el comentario anterior: arreglé esto con passwd -u. Puede entrar como deployahora, pero es realmente curioso por qué la implementación de mi chef está creando usuarios bloqueados. Copie / pegue su comentario anterior como respuesta para que pueda darle crédito
user2936314

Respuestas:

16
  • Inicios de sesión SSH pueden fallar por varias razones (permisos de directorio / archivo incorrecto, claves incorrectas, etc.) y el cliente que se conecta se acaba de obtener Permission deniedo No more authentication methods to tryo algún error genérico.

  • El motivo exacto del error de inicio de sesión estará disponible en ssh log /var/log/auth.logo en /var/log/securefunción de la configuración de syslog.

clemente
fuente
¡Esta es la mejor respuesta a todas las preguntas sobre el problema de inicio de sesión SSH fallido que he visto! En lugar de adivinar al azar los permisos incorrectos y los nombres de archivo como sugieren todas las otras respuestas, ¡simplemente verifique los registros mencionados y contienen toda la información que necesita!
Yaroslav Admin
La razón exacta no está en mi archivo de registro. Todo lo que dice es que la sesión fue abierta que cerrada.
VectorVortec
3

El mismo problema para mí instalación fresca de CentOS7.

1. verifique los permisos de directorio de inicio y los permisos ~ / .ssh y ~ / .ssh / certified_keys (como dice @clement)

chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys

2. verifique / etc / ssh / sshd_config settings && service sshd restart (después de cada edición) Útil: intente "LogLevel VERBOSE" en sshd_config.

Todavía recibí un mensaje de contraseña después de verificar que todo estaba bien.

Ejecute el cliente ssh con los registros -vvv:

debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply

Registros del servidor (/ var / log / secure):

Failed publickey for * from * port * ssh2: RSA *

El servidor ssh no envía más información de error al cliente, ya que eso sería un riesgo de seguridad.

Si ejecuté sshd en un puerto diferente 'sshd -p 5555 -d'. La llave funcionó. Inicio de sesión sin contraseña ok. WTF?

SAD :-( para decir que luego deshabilité selinux (establezca SELINUX = deshabilitado en / etc / selinux / config) y reinicie. El inicio de sesión sin contraseña funcionó bien.

mi configuración actual de sshd_config de trabajo:

[root@hp-bl-05 ~]# grep -vE "^#|^$" /etc/ssh/sshd_config  
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
SyslogFacility AUTHPRIV
LogLevel VERBOSE
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
HostbasedAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem   sftp    /usr/libexec/openssh/sftp-server

Por lo tanto, sería bueno saber si podríamos cambiar algo pequeño en selinux para que el inicio de sesión ssh sin contraseña funcione. ¿Alguien puede mejorar la respuesta?

lo mismo aquí: /superuser/352368/ssh-still-asks-for-password-after-setting-up-key-based-authentication/1072999#1072999

gaoithe
fuente