Por que o Google recomenda remover as chaves SSH do GCE por segurança?

15

A referência abaixo à documentação do Google não é mais verdadeira.

O Google recomenda remover as chaves SSH da instância GCE para proteger o SSH. Isso não faz sentido para mim. As chaves existem para uma segurança, certo? Quando removo as chaves, o SSHD para de funcionar. Eu provavelmente sinto falta do ponto deles. Alguém pode explicar o que significa isso:

Remova as chaves do host ssh

Não use chaves de host ssh com sua instância. Remova-os da seguinte maneira:

rm /etc/ssh/ssh_host_key
rm /etc/ssh/ssh_host_rsa_key*
rm /etc/ssh/ssh_host_dsa_key*
rm /etc/ssh/ssh_host_ecdsa_key*
Martin Prikryl
fonte
2
O documento recomenda a ativação StrictHostKeyCheckinge, posteriormente, a desativação. Suspeito que não seja um documento editado com muito cuidado. Meu conselho é confiar em seu próprio julgamento e usar as chaves do host, a menos que haja um bom motivo para não fazê-lo.
aecolley 29/08
@ aecolley eu notei isso também. Enviei um feedback para eles. Vai ver se eles voltam para mim.
Martin Prikryl
1
Eu elaborei abaixo, mas tudo se resume ao contexto - a página que você está olhando está dando conselhos para criar novas imagens, não para proteger geralmente uma máquina. Os documentos serão atualizados para incluir mais detalhes sobre quando e por que você deseja excluir as chaves do host, pois os motivos não são claros.
Benson

Respostas:

12

O detalhe crítico é que a página que você referenciou é sobre como criar uma nova imagem de máquina do Compute Engine. Especificamente, quando você cria uma nova imagem de máquina virtual, deseja garantir que NÃO inclua nenhuma chave do host. Dessa forma, quando a imagem é clonada e reconstituída em uma VM real, o script de inicialização sshd reconhece que não há chaves de host e gera automaticamente novas. Isso é desejável porque ter várias máquinas usando a mesma chave do host é uma péssima idéia.

Portanto, no caso geral, não exclua as chaves do host, mas se você estiver criando uma nova imagem, é uma etapa importante para garantir que exista um relacionamento individual entre as chaves e as máquinas do host.

Benson
fonte
1
Obrigado. Isso faz sentido. Embora alguma explicação ajudaria. "Não use chaves de host ssh com sua instância." é realmente uma frase confusa.
Martin Prikryl
Concordo inteiramente - muito obrigado por apontar isso. Na verdade, enviei uma atualização para os documentos para esclarecer a redação que, suspeito, será enviada em breve.
Benson
1
Os documentos atualizados já estão ativos: developers.google.com/compute/docs/images#removesshkeys
Benson
13

A única razão possível em que consigo pensar é que eles querem forçar você a regenerar novas chaves.
Como essas chaves foram geradas antes do acesso, elas podem não ser confiáveis.
Removê-los e reiniciar sshdregenerará as chaves para você.
No entanto, o documento realmente não deixa isso claro.

Isso é pura especulação e seria melhor entrar em contato com eles e obter esclarecimentos sobre isso.

falsificador
fonte
4
Obrigado pela sua resposta. Eu preciso ssh para o servidor para reiniciar o sshd. Mas para conectar, preciso aceitar a chave do host do servidor "não confiável". Portanto, qualquer coisa que eu faça durante esta sessão não pode ser confiável. Até a reinicialização do sshd. Certo?
Martin Prikryl
1
Eu acho que a principal preocupação seria que, por algum motivo, outro cliente obtenha as mesmas chaves que você (nota: isso não permite que eles acessem sua instância, mas facilita o ataque man-in-the-middle). Se você não confia no provedor da imagem, não deve executar nada lá (eles praticamente têm acesso físico).
faker
1
No IIRC, houve algumas pesquisas que mostram que a qualidade da entropia em alguns sistemas, particularmente embutidos, mas que também pode incluir algumas categorias de máquinas virtuais iniciadas recentemente, não é muito alta. Quando chaves públicas são geradas na primeira inicialização, como as chaves do host SSH, essas podem ser previsíveis.
precisa saber é o seguinte
@HBruijn Obrigado pelo comentário. Mas excluí-los e permitir que o sshd os recrie na reinicialização não os torna melhores. Você teria que enviar o seu próprio. Mas isso não é coberto no documento.
Martin Prikryl
1
Enviei um feedback ao Google. Vai ver se eles voltam para mim.
Martin Prikryl