
Nos ssh
clientes, o arquivo .ssh/knwon_hosts
pode 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 2018
e 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 webhost47
e 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.)