Intentando ingresar a SSH en una computadora remota pero aún solicitando contraseña

18

Intentando ingresar a SSH en una computadora remota pero aún solicitando contraseña.

Tengo varias computadoras con SElinux y solo una de ellas me está costando mucho usar ssh sin la contraseña.

Hice un ssh-copy-id y puedo ver mi clave en .ssh / Authorized_keys.

I chmod 700 .ssh y chmod 600 todos los archivos en ./ssh/*

Si hago un ssh -v esta es mi salida:

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to wcmisdlin05 [10.52.208.224] port 22.
debug1: Connection established.
debug1: identity file /home/jsmith/.ssh/identity type -1
debug1: identity file /home/jsmith/.ssh/id_rsa type 1
debug1: identity file /home/jsmith/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'wcmisdlin05' is known and matches the RSA host key.
debug1: Found key in /home/jsmith/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /home/jsmith/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/jsmith/.ssh/identity
debug1: Trying private key: /home/jsmith/.ssh/id_dsa
debug1: Next authentication method: password

¿Alguien puede decirme por qué no funciona en esta computadora remota?

JMS1969SF
fuente
55
Mire /var/log/secure(si son permisos) y /var/log/messages(si es SELinux). De lo contrario, es una discrepancia entre lo que hay ~/.ssh/authorized_keysy lo que está enviando el cliente SSH.
Aaron Copley

Respuestas:

17

A menudo he encontrado un error similar en máquinas CentOS 6 que involucran ssh-copy-idy SELinux.

Cuando ssh-copy-idcrea los archivos de claves autorizados, lo crea con los permisos adecuados, pero con la etiqueta SELinux incorrecta. La solución para esto es restaurar las etiquetas a sus valores predeterminados de política utilizando este comando:

restorecon -R ~/.ssh

Kenny Rasschaert
fuente
1
Buena respuesta. Pero para un novato de SELinux también sería interesante saber cómo inspeccionar la lista e inspeccionar los permisos.
zrajm
14

Estas cosas siempre son mucho más fáciles de depurar desde el lado del servidor, si eso es posible. Si puede iniciar un sshd en otro puerto en modo de depuración, le dirá de inmediato por qué se rechaza la clave (mi conjetura es que su directorio de inicio se puede escribir en grupo). Puede, por ejemplo, iniciar un sshd en modo de depuración en el puerto 2222 con /usr/sbin/sshd -d -p 2222, luego conectarse con ssh -p 2222 user@remotehost.

estofado
fuente
44
Muchas gracias por su suposición salvaje (el directorio de inicio es de escritura grupal). Ese fue exactamente mi caso.
Sergei Kurenkov
@skwllsp: acepte esta respuesta si es la correcta para su caso.
Deer Hunter
1
@ Deer Hunter, la pregunta ha sido formulada por otra persona, no por mí. No puedo aceptar esta respuesta.
Sergei Kurenkov
@skwllsp: un momento importante para mí, lo siento.
Deer Hunter
chmod 744 a mi directorio de inicio lo resolvió; estaba relacionado con esta respuesta, ¡gracias!
Brandt Solovij
3

El póster que se refería a SElinux dio en el clavo por mi problema. No quiero usar selinux, pero olvidé desactivarlo, y el servidor apareció con selinux habilitado en el arranque.

ssh -vLa depuración ayudó. La clave es aceptada:

debug1: Found key in /var/lib/amanda/.ssh/known_hosts:19
debug1: ssh_rsa_verify: signature correct

Y luego me sale el error

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

Mi solución fue desactivar selinux con setenforce 0y luego deshabilitar / etc / selinux. Entonces, el inicio de sesión sin contraseña de ssh funcionó para mí.

Mate
fuente
1

Experimenté esto hace algún tiempo en RHEL5 (no sé si esta es la distribución que está usando), y descubrí que fue solo cuando usé ssh-copy-id. Intente scp'ing el archivo de clave en la carpeta correcta y, por supuesto, restablecer los permisos

GeoSword
fuente
0

En mi caso, el problema estaba en un formato de authorized_keysarchivo incorrecto .

No debe haber ningún salto de línea en medio de la definición de formato ( ssh-rss, ssh-dss..) y de la propia clave pública.

helvete
fuente
0

Tuve problemas anteriormente con ssh y keyfiles. En esa ocasión, me id_rsaayudó cambiar el nombre de mi clave de identificación a " ". Lamentablemente tengo diferentes claves para diferentes servidores. Entonces ese enfoque tiene una utilidad limitada. Podría ayudar como algo excepcional.

En segundo lugar, hoy nuevamente tengo este error en una sola sesión de XTerm, y todo funciona muy bien en otras 6 sesiones de xterm en el mismo servidor / máquina de manguera. Así que comparé mi salida de envambas sesiones. Encontré que esta es la sesión de trabajo, que estuvo ausente en la sesión de no trabajo:

SSH_AUTH_SOCK=/run/user/1001/keyring/ssh 

Pegué esa tarea en la sesión que no funciona:

export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
ssh  user@host
... Welcome ...

En otras palabras, esa solución funcionó para mí.

Revisé un poco el SSH_AUTH_SOCKET. De esta respuesta:

La ruta del socket del archivo Unix que el agente utiliza para comunicarse con otros procesos.

Supongo que esto es esencial para la resolución clave basada en el resultado.

será
fuente
-1

debug1: clave pública de oferta: /home/jsmith/.ssh/id_ rsa

...

debug1: Prueba de clave privada: /home/jsmith/.ssh/id_ dsa

Me parece que la clave privada / pública simplemente no coincide. Los nombres clave nos dicen que la clave pública es la clave RSA y la clave privada es DSA.

Intente generar un nuevo par y scpclave pública para el servidor.

Gevial
fuente
se puede verificar si este es realmente el caso comparando las huellas digitales de las dos teclas con ssh-keygen -l -f ~/.ssh/id_rsa' and ssh-keygen -l -f ~ / .ssh / id_rsa.pub`. Sin embargo, no creo que incluso ofrezca las claves si hubiera una falta de coincidencia. Creo que es solo que uno está siendo rechazado por el servidor por una razón aún no determinada, por lo que intenta con otro.
estofado el
-2

Recomiendo verificar las autoridades en ./ssh y el directorio de inicio del usuario, en el archivo de clave y en el archivo autorizado de claves, ya que nadie más que el propietario debería poder escribir y leer allí si desea que la conexión sin contraseña ssh funcione. Eso concierne tanto a las máquinas de origen como a las de destino. Para ser honesto, a veces funciona incluso si hay derechos más grandes, pero no debería.

alan
fuente
1
Por favor, consulte: serverfault.com/questions/464411/… . Tu publicación también es redundante, ya que no has leído lo que otros han escrito.
Deer Hunter