¿Puede el servidor SSH (SFTP) tener múltiples huellas digitales?

¿Puede el servidor SSH (SFTP) tener múltiples huellas digitales?

Estoy creando un cliente SFTP automatizado con Java y, por supuesto, necesito guardar la huella digital SSH del servidor para cada servidor, pero ¿es posible que el servidor tenga dos o más huellas digitales únicas?

¿Es posible que exista un servicio SFTP con equilibrio de carga que tenga múltiples servidores SSH detrás del equilibrador de carga y cada uno de ellos tenga una huella digital única? ¿O de alguna manera se ve obligado a que todos usen la misma huella digital?

Respuesta1

Si y no.

Es posible que un único servidor tenga múltiples claves de host para algoritmos alternativos (de hechomayoría(los servidores admiten, por ejemplo, RSA + EdDSA), pero solo se elige una única clave de host para cada conexión, y para los clientes debería ser suficiente recordar solo una.

En el caso de servicios con equilibrio de carga, no existe ningún mecanismo mágico quefuerzatodos los nodos compartan la misma clave. Pero en la práctica, es muy probable que el administrador del sistema simplemente copie el mismo par de claves en todos los nodos, para facilitar la conexión de los usuarios.


Con más detalle:

  • En primer lugar, incluso unsolteroEl servidor siempre puede tener varias claves de host con diferentes algoritmos, por ejemplo: una clave ssh-rsa, una clave ssh-ed25519 y una clave ecdsa-nistp256.

    El protocolo de enlace requiere que el cliente elija una clave y, por lo general, solo se recuerda la huella digital de esa clave. Sin embargo, algunos clientes (por ejemplo, PuTTY) permiten cambiar la clave de la conexión con todas las claves de host disponibles para admitir la migración del algoritmo.

    Por ejemplo, se conecta utilizando la clave ssh-rsa del servidor pero además recuerda su huella digital ssh-ed25519. Más adelante, si el servidor desactiva la compatibilidad con ssh-rsa, ahora podrá utilizar ssh-ed25519 sin volver a solicitar al usuario.

  • Al conectarse a servicios con equilibrio de carga, algunos clientes permitirán múltiples claves de host conocidasincluso del mismo tipopara ser aprobado manualmente.

    Por ejemplo, si varios nodos comparten el mismo nombre de host, el cliente OpenSSH le permite agregar manualmente todas sus claves públicas a ~/.ssh/known_hosts y aceptará cualquier entrada coincidente.

    Sin embargo, OpenSSH no hará esto.automáticamente– una vez que conoce la primera clave, tratará cualquier cambio como un error fatal. Entonces, en la práctica, asumiría que los administradores de sistemas en realidad intentan evitar una mala experiencia de usuario y simplemente clonan la misma clave de host en todos los nodos con equilibrio de carga.

Resumen de clientes existentes:

  • PuTTY puede rastrear varias claves por servidor, pero solo una para cada algoritmo. En otras palabras, requiere que la combinación [nombre de host, puerto, algoritmo] sea única.
  • OpenSSH puede rastrear múltiples claves por servidor, sin ningún requisito de unicidad.
  • <¿Otros clientes?>

información relacionada