He creado con éxito una autenticación basada en clave para el usuario root de mi máquina A a mi máquina B.
Ahora, creé un nuevo usuario en la máquina B, igual que en la máquina A, llamémoslo USER
. Creé un directorio de inicio para él en la máquina B /home/USER
y quiero crear una autenticación basada en claves para él de la máquina A a la máquina B.
Entonces, corrí en una máquina
ssh-keygen -t rsa
, aceptó todos los caminos, así/home/USER/.ssh/id_rsa
y sin frasesssh-copy-id -i /home/USER/.ssh/id_rsa.pub USER@BmachinesIP
, ingresé la contraseña y recibí un masaje
Ahora intenta iniciar sesión en la máquina bla bla bla
Entonces todo parece estar bien.
Pero cuando intenté conectarme, ssh USER@BmachinesIP
me pidieron una contraseña. Traté de ver el registro y corrí ssh -vvv USER@BmachinesIP
y aquí hay una parte de la salida:
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,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 public key: /home/USER/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug3: no such identity: /home/USER/.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
USER@BmachinesIP's password:
Entonces, ¿alguien puede decirme qué he hecho mal o qué debo cambiar? Tal vez el problema está en los permisos, aquí están:
en una máquina:
drwx------ 2 USER USER SIZE DATE TIME .ssh
-rw------- 1 USER USER 1675 2011-10-31 14:36 id_rsa
-rw-r--r-- 1 USER USER 413 2011-10-31 14:36 id_rsa.pub
y en la máquina B:
drwx------ 2 USER defaultGroup SIZE DATE TIME .ssh
-rw------- 1 USER defaultGroup SIZE DATE TIME authorized_keys
fuente
chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
entonces funciona. Copiado de la respuesta de Maxime R. de aquí: askubuntu.com/questions/54670/passwordless-ssh-not-workingEl 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 (según @erik)
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:
Registros del servidor (/ var / log / secure):
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?
Luego deshabilité selinux (configuré SELINUX = deshabilitado en / etc / selinux / config) y reinicié. El inicio de sesión sin contraseña funcionó bien.
mi configuración actual de sshd_config de trabajo:
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?
fuente
La solución no es deshabilitar SELinux, sino arreglar los permisos SELinux del directorio de usuarios. El contexto del directorio de usuarios debe establecerse en
user_home_t
.Verificar,
Si el contexto para su directorio de usuarios es diferente
user_home_t
, SELinux no permitiría SSH a través de la clave pública en ese directorio de usuario para ese usuario.Arreglar,
El inicio de sesión basado en clave ahora debería funcionar.
fuente