A parte mais importante da adição "segura" de uma chave ao known_hosts
arquivo é obter a impressão digital da chave do administrador do servidor. A impressão digital principal deve ser algo como isto:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
No caso do GitHub, normalmente não podemos conversar diretamente com um administrador. No entanto, eles colocam a chave em suas páginas da web para que possamos recuperar as informações a partir daí.
Instalação manual da chave
1) Tire uma cópia da chave do servidor e obtenha sua impressão digital. NB: Faça isso antes de verificar a impressão digital.
$ ssh-keyscan -t rsa github.com | tee github-key-temp | ssh-keygen -lf -
# github.com:22 SSH-2.0-babeld-f3847d63
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
2) Obtenha uma cópia da impressão digital chave do administrador do servidor - nesse caso, navegue até a página com as informações em github.com
- Vá para github.com
- Vá para a página de ajuda (no menu à direita, se estiver logado; na parte inferior da página inicial, caso contrário).
- Na seção Introdução , vá para Conectando ao GitHub com SSH
- Vá para Testando sua conexão SSH
- Copie a impressão digital SHA256 dessa página no seu editor de texto para uso posterior.
3) Compare as chaves das duas fontes
Ao colocá-los diretamente um acima do outro em um editor de texto, é fácil ver se algo mudou
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(Observe que a segunda chave foi manipulada, mas se parece bastante com a original - se algo assim acontecer, você estará sob um ataque sério e deverá entrar em contato com um especialista em segurança confiável.)
Se as chaves forem diferentes, interrompa o procedimento e entre em contato com um especialista em segurança
4) Se as chaves forem comparadas corretamente, você deverá instalar a chave que já baixou
cat github-key-temp >> ~/.ssh/known_hosts
Ou para instalar para todos os usuários em um sistema (como root):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
Instalação automatizada de chaves
Se você precisar adicionar uma chave durante um processo de compilação, siga as etapas 1 a 3 do processo manual acima.
Feito isso, examine o conteúdo do seu github-key-temp
arquivo e crie um script para adicioná-lo ao seu arquivo hosts conhecido.
if ! grep github.com ~/.ssh/known_hosts > /dev/null
then
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
fi
Agora você deve se livrar de todos os ssh
comandos que foram StrictHostKeyChecking
desativados.