Najważniejszą częścią „bezpiecznego” dodania klucza do known_hosts
pliku jest pobranie odcisku klucza od administratora serwera. Kluczowy odcisk palca powinien wyglądać mniej więcej tak:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
W przypadku GitHub zwykle nie możemy rozmawiać bezpośrednio z administratorem. Jednak umieszczają klucz na swoich stronach internetowych, abyśmy mogli odzyskać informacje z tego miejsca.
Ręczna instalacja klucza
1) Weź kopię klucza z serwera i pobierz jego odcisk palca. NB: Zrób to przed sprawdzeniem odcisku palca.
$ 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) Uzyskaj kopię klucza linii papilarnych od administratora serwera - w takim przypadku przejdź do strony z informacjami na github.com
- Wejdź na github.com
- Przejdź do strony pomocy (w menu po prawej stronie, jeśli jesteś zalogowany; na dole strony głównej inaczej).
- W sekcji Pierwsze kroki przejdź do Łączenie się z GitHub za pomocą SSH
- Przejdź do Testowanie połączenia SSH
- Skopiuj odcisk palca SHA256 z tej strony do edytora tekstu do późniejszego wykorzystania.
3) Porównaj klucze z dwóch źródeł
Umieszczając je bezpośrednio jeden nad drugim w edytorze tekstu, łatwo sprawdzić, czy coś się zmieniło
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(Zauważ, że drugi klucz został zmanipulowany, ale wygląda dość podobnie do oryginału - jeśli coś takiego się zdarzy, jesteś poważnie atakowany i powinieneś skontaktować się z zaufanym ekspertem ds. Bezpieczeństwa.)
Jeśli klucze są różne, przerwij procedurę i skontaktuj się z ekspertem ds. Bezpieczeństwa
4) Jeśli klucze są poprawnie porównywane, zainstaluj klucz, który już pobrałeś
cat github-key-temp >> ~/.ssh/known_hosts
Lub zainstalować dla wszystkich użytkowników w systemie (jako root):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
Zautomatyzowana instalacja klucza
Jeśli musisz dodać klucz podczas procesu kompilacji, wykonaj kroki 1-3 powyższej procedury ręcznej.
Po wykonaniu tej czynności sprawdź zawartość github-key-temp
pliku i utwórz skrypt, aby dodać tę zawartość do pliku znanego hosta.
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
Powinieneś teraz pozbyć się wszelkich ssh
poleceń, które zostały StrictHostKeyChecking
wyłączone.