Estoy tratando de configurar un inicio de sesión SSH sin contraseña en CentOS 5.4:
- Genere la clave pública RSA en el cliente.
- ssh-copy-id del cliente al servidor.
- Verificado ~ / .ssh / optional_keys contiene la clave del cliente.
El cliente todavía solicitó la contraseña. ¿Qué me perdí?
Gracias.
EDITAR: comprobó ssh_config y los permisos según lo recomendado. Esta es la información de depuración del cliente:
debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
Respuestas:
9/10 veces es porque ~ / .ssh / Authorized_keys no está en el modo correcto.
fuente
~/.ssh
directorios no pueden ser escritos por nadie más que el usuario.Ingrese / etc / ssh / sshd_config para permitir la autenticación con una clave. Deberías tener algo como esto y asegurarte de que las líneas no estén comentadas:
PD: no olvide reiniciar sshd después de modificar el archivo (/etc/init.d/sshd restart)
fuente
AuthorizedKeysFile
fue comentado y también tuve que usar una ruta absoluta paraauthorized_keys
.Descubrí que con mi sistema el problema era que el directorio de usuario (/ home / username) estaba equipado con los permisos incorrectos. Lo era
drwxr-x-w-
y tenía que serlodrwxr-xr-x
(con permiso de escritura solo para el propietario). La solución fue usar chmod:fuente
No soy un experto aquí, pero también me encontré con ese problema, aquí están mis dos centavos además de todas las otras sugerencias.
A veces
ssh-copy-id
copia la clave incorrecta en el servidor remoto (puede suceder si tiene varias claves y / o está utilizando nombres no predeterminados para los archivos de claves) o su agente de autenticación está mal configurado.Aquí hay una cita de las páginas del manual :
Entonces, básicamente, quieres comprobar eso:
ssh-add -L
salida)ssh-copy-id
copiado la misma clave para el equipo remoto (solo iniciar sesión en el servidor remoto mediante contraseña y comprobar el contenido de~/.ssh/authorized_keys
)ssh-copy-id
qué clave copiar:ssh-copy-id -i ~/.ssh/some_public_key
Espero que ayude.
fuente
ssh-copy-id
el problema es:,DEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)
que por defecto será la primera clave alfabética; en mi caso, tuve unid_boot2docker.pub
(que aparentemente es el nombre predeterminado para boot2docker ssh). Parece que hay un montón de diferentes implementaciones de ssh-copy-id alrededor; vino el míobrew install ssh-copy-id
, que a su vez se toma de openssh-portable. Mi página de manual menciona explícitamente este comportamiento ...El problema más común son los permisos no válidos en el lado del servidor. Verifique que ninguno de su directorio de inicio,
~/.ssh
y que~/.ssh/authorized_keys
nadie más que usted pueda escribirlos (en particular, no deben ser de escritura grupal).Si ese no es el problema, corre
ssh -vvv server
y mira la vista del cliente sobre la conversación. En particular, verifique que el cliente esté probando la clave con el servidor.fuente
~/.ssh
y~/.ssh/authorized_keys
no puedo ser escribible por nadie más que usted.Además de todo lo anterior, siempre se puede verificar el archivo de registro sshd:
fuente
Intenté las otras soluciones, pero descubrí que tenía que cambiar el directorio de inicio para que otros no pudieran escribirlo. El directorio de inicio era 777. Lo cambié a 755 y funcionó.
fuente
en mi caso / etc / ssh / sshd_config contenía el siguiente parámetro:
Pero ssh-copy-id creó un archivo con el nombre certified_keys, así que tuve que modificar la entrada al nuevo nombre. Más información sobre las claves_desautorizadas2
fuente
Como complemento a la respuesta de Omer Dagan para el nuevo CentOS 7, use:
para mirar los registros sshd en el servidor.
fuente
El problema era que tenía la autenticación RSA desactivada en / etc / ssh / ssh_config
fuente