Mi servidor ejecuta CentOS 5.3. Estoy en una Mac con Leopard. No sé cuál es el responsable de esto:
Puedo iniciar sesión en mi servidor muy bien a través de la autenticación de contraseña. He seguido todos los pasos para configurar PKA (como se describe en http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html ), pero cuando Yo uso SSH, se niega incluso a intentar la verificación de clave pública. Usando el comando
ssh -vvv user@host
(donde -vvv aumenta la verbosidad al nivel máximo) Obtengo el siguiente resultado relevante:
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
seguido de un mensaje para mi contraseña. Si trato de forzar el problema con
ssh -vvv -o PreferredAuthentications=publickey user@host
yo obtengo
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.
Entonces, aunque el servidor dice que acepta el método de autenticación de clave pública, y mi cliente SSH insiste en ello, soy rechazado. (Tenga en cuenta la ausencia evidente de una línea "Ofrecer clave pública:" arriba). ¿Alguna sugerencia?
Respuestas:
Verifique que su máquina Centos tenga:
en sshd_config
y asegúrese de tener el permiso adecuado en el directorio ~ / .ssh / de la máquina centos.
debería hacer el truco.
fuente
chmod go-w ~/
si aún no lo es.755
(como Jinyu Liu menciona a continuación)/etc/ssh/ssh_config
Tuve un problema similar: la PC remota no podía usar la autenticación de clave pública para iniciar sesión en el servidor CentOs 6. El problema en mi caso estaba relacionado con SELinux: el directorio de inicio del usuario que intentaba iniciar sesión tenía contextos de seguridad de mensajes. Resolví esto usando la
restorecon
herramienta de esta manera:fuente
/home
de lo que usualmente están en el diseño del directorio/home
.restorecon -Rv /root
1- verifique su / etc / ssh / sshd_config, asegúrese de tener
2- verifique el registro seguro de la máquina remota, busque el registro de errores de daemon sshd detallado. por ejemplo, en mi Ubuntu
Luego verifique la propiedad y los modos para el directorio / home / xxx, tal vez necesite ejecutar esto
fuente
Verifique que sus permisos sean correctos y que la estructura del archivo (específicamente la ortografía) sea correcta, tanto para máquinas locales como remotas. La URL a la que se refiere los declara todos, pero vale la pena comprobar que lo que tiene coincide. Sin embargo, normalmente los permisos arrojarán un error relevante.
¿Ha verificado que el sshd_config en su casilla CentOS 5.3 está configurado para permitir PubkeyAuthentication o RSAAuthentication?
Verifique los registros del servidor SSH en el sistema CentOS; puede proporcionar más información. No estoy seguro de si CentOS realiza la comprobación de la clave ssh en la lista negra que hace Debian, pero he visto rechazos de clave pública ssh que son relativamente silenciosos en lo que respecta a la salida -vvv, pero los registros explicaron con bastante claridad lo que estaba sucediendo
fuente
¡Lo tengo! Resulta que era un problema del lado del cliente. (Creo que cualquier problema del lado del servidor habría producido una salida de depuración más útil). Por razones desconocidas para mí, en mi Mac, el archivo / etc / ssh_config tenía la línea
Comenté esa línea, y ahora todo funciona bien.
fuente
Además de los modos de archivos / directorios, asegúrese de que la propiedad sea correcta. Un usuario debe tener su propio directorio de inicio, .ssh /, y sus archivos.
Tuve que correr
chown -R $user:$user /home/$user
para superar mis fallas ssh.fuente
Compruebe también que puede proporcionar automáticamente una clave o no, use -i path / to / key si no es así o solo para probar
fuente
Suena como un problema de configuración para mí. Como Daniel sugirió, hay dos cosas que verificar:
$HOME/.ssh/authorized_keys
son legibles; yfuente
Verifique el nombre de usuario con el que está intentando iniciar sesión. Por defecto, es su nombre de usuario en la máquina local.
fuente
La salida del cliente como en
ssh -v
revelará que hay un problema en un determinado paso del protocolo, pero cuando se debe a algo en el servidor, el cliente no será informado de la causa. Verifique los archivos de registro del servidor para averiguar qué está mal. Es probable que tenga que estarloroot
para tener permisos para hacerlo. Por ejemplo, para unsshd
configurado para iniciar sesión en syslog, puede encontrar los mensajes en/var/log/secure
. Como estos:La razón en este caso era un defecto (estúpido)
default
de0002
. Eso significa, acceso de escritura para el grupo. (Nombre de grupo = nombre de usuario, pero aún así). El daemon SSH no confiará en los archivos que puedan ser manipulados por otros que no sean el usuario (bueno, yroot
, por supuesto). Puedes resolver el problema usandochmod
.fuente
acabo de quedar atrapado en el mismo problema al acceder con fedora core 16 a cents 5.5
los troncos y los verbos se veían exactamente iguales
el problema era la clave pública, obtuvo algunos datos falsos, regenerarlo y publicarlo en el servidor sshd_, su cliente sshd_client está enviando la información clave pero no es reconocido por el servidor (no coincide con ninguna de las claves en claves_autorizadas)
fuente
Otro mordido por esto. Después de una larga búsqueda resultó que estaba alimentando explícitamente ssh la clave pública (con la opción -i) en lugar de la clave privada. Doh!
fuente