Error de clave SSH, sudo funciona bien

3

Cuando trato de ssh ( using ssh [email protected] ) en mi servidor en casa desde la red local o desde afuera, recibo el siguiente error:

Perosiuso[email protected],funcionasinproblemas:

Estoy seguro de que solo necesito colocar algún tipo de clave en ese directorio /Users/mattlove/.ssh/known_hosts , pero no estoy seguro de cómo o por qué.

¿Alguno de ustedes buffs de UNIX tiene una respuesta?

E D I T:

Aquí están los resultados de ejecutar ls -l ~/.ssh/known_hosts según lo solicitado por @ LoïcWolff

    
pregunta Matt Love 19.01.2012 - 15:08

2 respuestas

10

La primera vez que se conecta a un servidor, se le solicita que acepte la huella digital para el host al que se está conectando. La huella digital es una combinación de una firma digital, el nombre de host y la dirección IP del servidor. Cuando acepta, la huella digital se guarda en ~/.ssh/known_hosts como un host "confiable".

Por alguna razón, la huella digital del servidor ha cambiado desde la primera vez que te conectaste. Esto puede deberse a que no es el servidor que espera que sea, por ejemplo, cuando su solicitud está siendo interceptada y redirigida a un servidor diferente. De ahí la advertencia de seguridad. La explicación también puede ser menos maliciosa, por ejemplo, cuando el servidor fue reemplazado / reinstalado sin restaurar su firma digital anterior, o cuando la dirección IP ha cambiado.

Si a pesar de la advertencia de seguridad, aún confía en el servidor al que se está conectando, debe abrir ~/.ssh/known_hosts y buscar la línea que comienza con la dirección del servidor al que se está conectando. Elimine toda la línea y guarde los cambios, luego vuelva a conectarse al servidor. La primera vez que se conecte, deberá solicitarle nuevamente que acepte la huella digital actualizada, después de lo cual no tendrá más problemas para conectarse a ese host.

La razón por la que funcionaría con sudo es porque en esas condiciones lo está ejecutando como un usuario diferente (root), y cada usuario tiene su propio archivo conocido_hosts (para root, se encuentra en /private/var/root/.ssh/known_hosts ). Es posible que la raíz nunca haya registrado la huella digital anterior de ese host, por lo que no tiene forma de compararlo con la actual, y no hay razón para desconfiar del servidor.

    
respondido por el Gerry 19.01.2012 - 15:34
5

El archivo known_hosts contiene las claves de los hosts a los que se conectó anteriormente y ha verificado que ha comprobado que la firma de la clave es correcta.

En tu caso, una de dos cosas ha sucedido,

  1. La clave en el servidor ha cambiado desde que la aprobó para su cuenta, pero no desde que fue aprobada para la cuenta root .
  2. Hay un atacante que intercepta las comunicaciones entre usted y el servidor, y usted aprobó su clave para la cuenta root y tiene la clave correcta en su cuenta.

Lo más probable es que sea el caso 1: los ataques de hombres en el medio en SSH, aunque son posibles, son relativamente raros. La advertencia está ahí para alertarle sobre el hecho de que alguien puede estar interceptando sus comunicaciones, aunque las posibilidades de esto son bastante bajas.

Para resolver esto, abra el archivo known_hosts y elimine la entrada para el host en cuestión. Póngase en contacto con el administrador del sistema del host y solicíteles la 'Huella digital de la clave del host'. Realice su conexión nuevamente, verifique que la huella digital coincida con la que recibió del administrador del sistema y apruebe la clave.

Si la huella digital no coincide con la proporcionada por el administrador del sistema del host remoto, ¡NO apruebe la clave!

    
respondido por el Mike Insch 19.01.2012 - 15:34

Lea otras preguntas en las etiquetas