Eu corro um desktop Ubuntu com vários servidores virtuais no Virtual Box para testar coisas, etc. No passado, eu também estava me conectando a outros tipos de caixas VPS Linux remotas. Atualmente, meu .ssh/known_hosts
arquivo tem um monte de chaves, a maioria das quais não está mais sendo usada.
Quero limpar meu .ssh/known_hosts
arquivo, mas como sei qual chave pertence a qual host? Ou seja, como sei quais chaves posso remover com segurança e quais devo deixar em paz?
ssh-keyscan
possui regras de formatação muito rígidas para olist_of_hosts
arquivo. Precisa ser apenas os endereços e nenhum outro espaço em branco, em seguida, LF após cada endereço. Isso inclui LF após o último endereço. Caso contrário, você terá muito lixo no arquivo gerado.Com dificuldade...
O Ubuntu, por padrão, faz o hash de nomes de host do arquivo known_hosts (esse não é o comportamento padrão do openssh), para dificultar que qualquer pessoa que esteja lendo o arquivo saiba quais sistemas você acessa.
Se você realmente deseja limpar o arquivo, a opção mais simples provavelmente é apenas excluí-lo e verificar as chaves dos servidores que você conhece à medida que surgem, mas, na verdade, eu apenas deixaria o know_hosts em paz.
Você pode impedir que novas entradas de hosts sejam hash comentando a opção em / etc / ssh / ssh_config
fonte
ssh root@something-new-or-new-dns-alias
. Isso atualizará oknown_hosts
arquivo original e criptografará os nomes de host / IPs.Eu tinha mais de 300 entradas antigas obsoletas no meu arquivo known_hosts. Não tenho certeza de que funcionará para todos os sistemas (ou mesmo para a maioria dos sistemas), mas aqui está o meu script de Q&D. Pode ser necessário ajustar as seqüências ou o local correspondente.
fonte
known_hosts
arquivo com hash e, como o interlocutor pergunta: "como sei qual chave pertence a qual host", acho que é muito provável que o arquivo seja hash. Ele diz que está no Ubuntu e, comotheotherreceive
diz, o Ubuntu faz hashes por padrão.