La parte más importante de agregar de forma "segura" una clave al known_hosts
archivo es obtener la huella digital de la clave del administrador del servidor. La huella digital clave debería verse así:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
En el caso de GitHub, normalmente no podemos hablar directamente con un administrador. Sin embargo, ponen la clave en sus páginas web para que podamos recuperar la información desde allí.
Instalación manual de llaves
1) Tome una copia de la clave del servidor y obtenga su huella digital. NB: Haga esto antes de verificar la huella 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) Obtenga una copia de la huella digital del administrador del servidor; en este caso, vaya a la página con la información en github.com
- Ir a github.com
- Vaya a la página de ayuda (en el menú de la derecha si ha iniciado sesión; de lo contrario, en la parte inferior de la página de inicio).
- En la sección Introducción , vaya a Conectarse a GitHub con SSH
- Vaya a Prueba de su conexión SSH
- Copie la huella digital SHA256 de esa página en su editor de texto para su uso posterior.
3) Compare las claves de las dos fuentes
Al colocarlos directamente uno encima del otro en un editor de texto, es fácil ver si algo ha cambiado
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(Tenga en cuenta que la segunda clave ha sido manipulada, pero se parece bastante a la original; si sucede algo como esto, está bajo un ataque grave y debe comunicarse con un experto en seguridad de confianza).
Si las teclas son diferentes, cancele el procedimiento y póngase en contacto con un experto en seguridad.
4) Si las claves se comparan correctamente, entonces debe instalar la clave que ya descargó
cat github-key-temp >> ~/.ssh/known_hosts
O para instalar para todos los usuarios en un sistema (como root):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
Instalación automatizada de llaves
Si necesita agregar una clave durante un proceso de compilación, entonces debe seguir los pasos 1-3 del proceso manual anterior.
Una vez hecho esto, examine el contenido de su github-key-temp
archivo y cree un script para agregar esos contenidos a su archivo de hosts conocidos.
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
Ahora debería deshacerse de cualquier ssh
comando que se haya StrictHostKeyChecking
deshabilitado.