ssh, hashknown_hosts: extrae texto sin formato y utiliza comodines

ssh, hashknown_hosts: extrae texto sin formato y utiliza comodines

En sshlos clientes, el archivo .ssh/knwon_hostspuede usar texto plano (esto sucede, por ejemplo, en FreeBSD 12.0):

<ip_address> ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIlD8R6Kxj9CdToar+3ay4B0yE65dP0EYoRJjEEgLjmvCTIv59DBp+0j2z0+NM0hxxJew79i1bYuN02lEvT2/E=

o puede tener un hash (como en Ubuntu 18.04):

|1|3Et6QShrP2OrD4tWdOGP3jy3YC4=|f2FrJ5tOjjmFSrGWyen1DokJyLc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIyZLGNvIADWL5SSkohBmDCVpLUzAHNejqQAXP3SSY300YIdNKCn3jqGmFAJiKB1CY0HnVirgFjdAKpyw3+6yzo=

Pregunta 1

¿Es posible obtener las líneas de texto sin formato a partir de un hash known_hosts?


ubuntupágina de manual de sshdEstablece que:

Sólo puede aparecer un nombre de host con hash en una sola línea y no se puede aplicar ninguno de los operadores de negación o comodines anteriores.

No estoy seguro de lo que significa aquí.

Pregunta 2

¿Eso significa que direcciones como 192.168.*.*nunca se pueden aceptar en forma hash known_hosts, incluso cuando se crean como texto sin formato y luego se hacen manualmente?


Como en unPregunta anterior, estoy usando estos clientes: OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018y OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017.

Respuesta1

No y sí, en ese orden. El propósito del hash de la línea es ocultar los hosts a los que se ha conectado previamente, por lo que el propósito mismo de la función hash es hacer que sea (para fines prácticos) imposible saber qué nombre de host le pertenece.

Por extensión, no se puede hacer que los comodines funcionen con nombres de host con hash: si quiero conectarme webhost47y las líneas tienen hash, ¿cómo puedo saber que hay una línea que coincide webhost*? Un hash es una trampilla, solo puedo encontrar esa línea haciendo hash webhost*y comprobando. Pero también tendría que verificar ?ebhost47, w?bhost47, ??bhost47, etc., etc., por lo que eso no es realmente razonable.

(Supongo que el comentario también significa que no puedes tener

hashblurb1,hashblurb2 ssh-rsa …

con nombres de host hash, aunque puedes tener

hostname1,hostname2 ssh-rsa …

y no veo ninguna razón técnica en este momento por la que no puedas tener eso).

información relacionada