Existe um risco de segurança para divulgar o seu arquivo SSH known_hosts?

32

Estou falando em uma conferência na próxima semana sobre algumas ferramentas de software que eu criei. Meu laptop será mostrado na tela do projetor durante esta apresentação. A apresentação será gravada em vídeo e postada no youtube. Se, por algum motivo, tiver oportunidade de abrir e editar meu ~/.ssh/known_hostsarquivo durante esta apresentação, devo desconectar o projetor enquanto o faz? Existe algum risco de segurança na divulgação do meu arquivo known_hosts?

Matt Korostoff
fonte
7
Por que não simplesmente substituir o seu real known_hostspor um falso durante a apresentação?
Sven
1
... ou se você não verificar a impressão digital do host em primeiro lugar, use algo como ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no user@hostpara ignorar a questão da impressão digital e evitar verificações em relação a hosts_existentes.
Lekensteyn
@ Mesmo o arquivo known_hosts não faz parte da apresentação propriamente dita, apenas que o software que estou demonstrando ocasionalmente exige que eu edite meus unknown_hosts. O público não precisa ver isso (por isso vou usar a edição cega, como vários comentadores sugeriram aqui), mas a edição de um arquivo unknown_hosts falso simplesmente não alcançaria meu objetivo.
226158 Mattelostost

Respostas:

43

O arquivo known_hosts contém as chaves públicas confiáveis ​​para hosts aos quais você se conectou no passado. Essas chaves públicas podem ser obtidas simplesmente tentando se conectar a esses hosts. Portanto, não há risco de segurança em si.

Mas: contém um histórico de hosts aos quais você se conectou. As informações podem ser usadas por um invasor em potencial para rastrear a infraestrutura da organização, por exemplo. Além disso, ele informa aos possíveis invasores que você provavelmente tem acesso a determinados hosts e que roubar seu laptop também lhes dará acesso.

Edit: Para evitar mostrar seu arquivo known_hosts, recomendo que você use o ssh-keygenutilitário. ssh-keygen -R ssh1.example.orgpor exemplo, remove as chaves confiáveis ssh1.example.orgde seus unknown_hosts.

Richard
fonte
15

Não há nada de particularmente perigoso nisso. No entanto, você pode não querer divulgar essas informações de identificação. Às vezes, a existência de hosts revela boas linhas de ataque para os mais inclinados. Você pode fazer uso HashKnownHostsou editar o arquivo sem olhar para ele.


Edição às cegas:
sed -i 25d .ssh/known_hostsexcluirá a linha 25 sem colocar nenhum conteúdo na tela.

HashKnownHosts
Indica que ssh (1) deve hash nomes e endereços de host quando adicionados a ~ / .ssh / known_hosts. Esses nomes de hash podem ser usados ​​normalmente pelo ssh (1) e sshd (8), mas não revelam informações de identificação caso o conteúdo do arquivo seja divulgado. O padrão é "não". Observe que os nomes e endereços existentes nos arquivos conhecidos dos hosts não serão convertidos automaticamente, mas podem ser divididos manualmente usando ssh-keygen (1).

84104
fonte
4
Em vez de calcular manualmente o número da linha e removê-lo com o sed, você também pode usar ssh-keygen -R example.com.
Lekensteyn
4
Você também pode usar ssh-keygen -H -f ~/.ssh/known_hostspara hash todos os nomes / endereços no arquivo.
Barmar 15/07/2015