ssh, hash conhecidos_hosts: extraia texto simples e use curingas

ssh, hash conhecidos_hosts: extraia texto simples e use curingas

Nos sshclientes, o arquivo .ssh/knwon_hostspode usar texto simples (isso acontece, por exemplo, no FreeBSD 12.0):

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

ou pode ser hash (como no Ubuntu 18.04):

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

Questão 1

É possível obter linhas de texto simples a partir de um hash known_hosts?


Ubuntupágina de manual sshdafirma que:

Apenas um nome de host com hash pode aparecer em uma única linha e nenhum dos operadores de negação ou curinga acima pode ser aplicado.

Não tenho certeza sobre o que isso significa aqui.

Questão 2

Isso significa que endereços como 192.168.*.*nunca podem ser aceitos na forma de hash known_hosts, mesmo quando são criados como texto simples e depois com hash manual?


Como em umpergunta anterior, estou usando estes clientes: OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018e OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017.

Responder1

Não e sim, nessa ordem. O objetivo do hash da linha é ocultar os hosts aos quais você se conectou anteriormente, portanto, o objetivo da função hash é tornar (para fins práticos) impossível saber qual nome de host pertence a ela.

Por extensão, você não pode realmente fazer curingas funcionarem com nomes de host com hash: se eu quiser me conectar webhost47e as linhas estiverem com hash, como faço para descobrir que há uma linha que corresponde a webhost*? Um hash é um alçapão, só consigo encontrar essa linha fazendo hash webhost*e verificando. Mas eu também teria que verificar ?ebhost47, w?bhost47, ??bhost47, etc. etc., então isso não é realmente razoável.

(Acho que o comentário também significa que você não pode ter

hashblurb1,hashblurb2 ssh-rsa …

com nomes de host com hash, mesmo que você possa ter

hostname1,hostname2 ssh-rsa …

e não vejo uma razão técnica agora para que você não possa ter isso.)

informação relacionada