Desconectado: no hay métodos de autenticación compatibles disponibles

12

Tengo el mismo problema exacto descrito en este hilo , pero la respuesta aceptada no es la correcta para mí, porque el directorio de inicio del usuario es local.

Creo que configuré todo correctamente en el lado del cliente (Windows 7, PAGEANT, PUTTYGEN y PLINK de PuTTY), pero no creo que el mecanismo de clave pública funcione (el inicio de sesión ssh basado en contraseña funciona). Seguí todos los pasos, señales y pistas en:

Ahora sospecho que me puede faltar algo en el lado del servidor (Linux, sshd), por lo que estoy publicando el /etc/ssh/sshd_configcontenido actual :

Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

¿Alguna idea de lo que estoy haciendo mal?

ACTUALIZACIÓN: Encontré un consejo para ejecutar sshd en modo de depuración , y aquí está el resultado:

/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done

debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup

Ahora, noto los dos bad ownership or modes for directory /home/winwinmensajes, pero verifiqué la propiedad o los modos del directorio / home / winwin y AFAICT están bien:

/home> ls -lad winwin
drwxrwxr-x  21 winwin winwin 4096 Jul 13 21:24 winwin

Y:

/home/winwin> ls -lad .ssh
drwxr-xr-x  2 winwin winwin 4096 Jul 14 12:06 .ssh

Y:

/home/winwin/.ssh> ls -lad *
-rw-r--r--  1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r--  1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r--  1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig

Qué podría estar mal?

ACTUALIZACIÓN II: intenté chmod 600como se sugiere en la respuesta a continuación:

/home/winwin> ls -lad .ssh
drw-------  2 winwin winwin 4096 Jul 14 13:13 .ssh

Y:

/home/winwin/.ssh> ls -lad *
-rw-------  1 winwin winwin 210 Jul 14 12:06 authorized_keys

Pero todavía no funciona. ¿Por qué sigo recibiendo el Authentication refused: bad ownership or modes for directory /home/winwinerror?

WinWin
fuente

Respuestas:

9

Intente tomar los permisos de escritura grupales de su directorio de inicio:

chmod g-w ~/

Haga que su carpeta .ssh sea legible / escribible / ejecutable solo por usted :

chmod 700 ~/.ssh

Haga que su archivo de claves autorizado sea legible / escribible solo por usted :

chmod 600 ~/.ssh/authorized_keys

Eso debería eliminar los errores de permisos.

John T
fuente
Hice lo que me sugeriste ~/.sshy ~/.ssh/authorized_keys. Aún no hay suerte. En cuanto a tomar los permisos de escritura grupales del directorio de inicio, no puedo hacerlo, ya que socavaría todo el propósito de este usuario / grupo para el que se creó. El directorio de inicio de este usuario debe poder ser escrito por el grupo (¡tener el mismo nombre y gid exactos!). +1 por intentar ayudar.
WinWin
¡Gracias! chmod g-w ~/me salvó después de horas de locura y tirones de cabello cuando no podía jugar con masilla en nombre de uno de los usuarios, con otros usuarios trabajando bien ...
PavelS
Gracias, creé mi directorio de inicio con mi otro usuario, y me faltaba chmod gw ~ /
Clarence Liu el
5

¡Éxito!

Todo lo que tuve que hacer es cambiar StrictModesa no .

Según la sección 3.14 en las preguntas frecuentes de OpenSSH y http://blogs.nullvision.com/?p=114 .

Guau.

WinWin
fuente
Hmm, eso es más una solución que una solución. Déjame revisar algo en mi caja.
Rob
Mi ls -lad .sshmuestra drwx, por lo tanto, chmod 700 ~/.sshy los archivos dentro son todos -rw, así que chmod 600 ~/.ssh/*-SHOULD- funcionan.
Rob
No importa, vi El directorio de inicio de este usuario debe poder ser escrito por el grupo (¡que tenga el mismo nombre y número exacto!) A continuación
Rob
¡De esta manera no hay usuario!
Amor
3

Tuve un problema similar. Al hurgar, noté que tenía encriptados mis directorios personales y sospeché que ese era el problema. Copié el archivo de claves autorizado a un directorio fuera del directorio de inicio encriptado, cambié los permisos de manera apropiada (chmod 700 [dir], chmod 600 [dir] / Authorizedkeys, etc.).

Luego edite su sshd_config para decirle a sshd la nueva ubicación para el archivo de claves autorizado, reinicie sshd y listo.

Parece haber solucionado mi problema.

rojo
fuente
2

Parece que sus permisos para el directorio de inicio (o posiblemente su carpeta .ssh / certified_keys) son incorrectos. Corregirlos debería solucionar el problema de inicio de sesión. Intente chmod 600 /home/winwin/.ssh/*
Puede que también necesite hacerlo chmod 700 /home/winwin/.ssh.

SSHd se negará a cargar su authorized_keysarchivo si puede ser escrito por alguien que no sea su usuario (como propietario) porque es un riesgo de seguridad.

Darth Android
fuente
Gracias +1. Vea mi actualización anterior, ya que todavía no puedo entender cuáles deberían ser los permisos / propiedad correctos.
WinWin
Solo lo intenté chmod 600 /home/winwin/.ssh/*. No sirvió de nada. : - /
WinWin
1
@WinWin ¿Lo configuró también en el .sshdirectorio? (Actualicé mi respuesta).
Darth Android
Sí, lo hice. Aún no hay suerte.
WinWin
2

Luché con esto y finalmente encontré una solución que no causa una posible violación de seguridad como StrictModes No se hace.

Asegúrese de que su configuración sea la siguiente:

chmod 0755 / inicio / {userdir}

chmod 0700 / inicio / {userdir} /.ssh

chmod 0600 / home / {userdir} /.ssh/authorized_keys

Donde {userdir} es el directorio en cuestión.

La clave es chmod 0755, que garantiza que solo el usuario pueda escribir en la unidad de inicio. Copié esto de mi configuración de usuario que funcionó, y ¡listo!¡Los otros nombres de usuario también comenzaron a funcionar!

Espero que esto ayude a otros como a mí y te ahorre un par de horas.

smcjones
fuente
1

Este mensaje de error también puede ser causado por SELinux que impide el acceso de sshd authorized_keys. Prueba esto:

restorecon -FRvv ~/.ssh

(de esta respuesta )

RomanSt
fuente
0
chown -R winwin.winwin /home/winwin/
chmod 700 /home/winwin/
find /home/winwin/ -type d -exec chmod 700 {} \;
find /home/winwin/ -type f -exec chmod 600 {} \;
Tío Bob
fuente
3
¡Bienvenido a Super User! Sería bueno si pudieras explicar lo que hacen estos comandos.
slhck
0

En mi caso, fue el directorio de inicio el que tenía otro propietario (root) que el usuario real al que pertenece este directorio de inicio (mi estupidez al crear el directorio de inicio con root para otro usuario).

Chown [user]:[group] /home/[user] 

ha resuelto este problema (y, por supuesto, atenerse a los permisos de archivo / directorio como se comparte en otras respuestas).

Philippe
fuente