Muszę przeprowadzić audyt klucza SSH dla GitHub, ale nie jestem pewien, jak znaleźć mój odcisk palca klucza RSA. Pierwotnie postępowałem zgodnie z przewodnikiem, aby wygenerować klucz SSH w systemie Linux.
Jakie polecenie muszę wprowadzić, aby znaleźć mój bieżący odcisk klucza RSA?
function fingerprint() { ssh-keygen -lf $1 -E md5 }
Następnie (po źródle bashrc) możesz uzyskać odcisk palca za pomocąfingerprint ~/.ssh/key_file
;
w ciele, więc użyjfunction fingerprint() { ssh-keygen -lf $1 -E md5; }
zamiast tego.Odpowiedzi:
Uruchom następującą komendę, aby pobrać odcisk palca SHA256 klucza SSH (
-l
oznacza „listę” zamiast utworzyć nowy klucz,-f
oznacza „nazwę pliku”):Na przykład na moim komputerze uruchomiłem polecenie (używając klucza publicznego RSA):
Aby uzyskać format linii papilarnych GitHub (MD5) z nowszymi wersjami ssh-keygen, uruchom:
Informacje o bonusie:
ssh-keygen -lf
działa również naknown_hosts
iauthorized_keys
pliki.Aby znaleźć większość kluczy publicznych w systemach Linux / Unix / OS X, uruchom
(Jeśli chcesz zajrzeć do homedirów innych użytkowników, musisz być rootem lub sudo.)
ssh-add -l
Jest bardzo podobny, ale wymienia odciski kluczy dodanych do środka. (Użytkownicy OS X zauważają, że magiczny SSH bez hasła za pomocą pęku kluczy nie jest tym samym, co używanie ssh-agent.)źródło
.ssh/id_rsa
powinien być taki sam jak dla.ssh/id_rsa.pub
. Możesz więc użyć jednego z nich (a jeśli jesteś podobny do mnie i uwielbiasz uzupełnianie tabulatorów, powoduje to, że praca wymaga 2 razy mniej naciśnięć klawiszy. Wydajność!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
jeśli nie chcesz standardowego sha256 wyjścieNowsze polecenia SSH będą wyświetlać odciski palców jako SHA256 klucz .
Na przykład:
Jeśli chcesz porównać go ze starym odciskiem palca, musisz również określić, aby użyć funkcji mieszania odcisków palców MD5 .
Także dostępny:
-E sha1
Aktualizacja ... TAK ... tak ... wiem ... Nie należy już używać kluczy DSA do SSH, zamiast tego należy użyć starszego klucza RSA lub nowszego klucza ekliptyki.
Do tych „administratorów”, którzy wciąż edytują polecenie, którego użyłem powyżej. Przestań go zmieniać! Sprawiasz, że polecenie i wynikowy wynik są niepoprawne!
źródło
ssh
pokazać, że używasz starego odcisku palca MD5 na serwerzessh -o FingerprintHash=md5 example.org
, jak wspomniano w tej odpowiedzi . (Właśnie tego szukałem, a ta odpowiedź doprowadziła mnie do tej, więc sądzę, że inni mogą mieć podobne doświadczenie.)Aby zobaczyć swój klucz na Ubuntu, po prostu wprowadź następujące polecenie na terminalu:
ssh-add -l
Otrzymasz takie wyjście:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
twoja nazwa @ ubuntu (RSA)Jeśli jednak pojawi się błąd, taki jak;
Could not open a connection to your authentication agent.
Oznacza to, że ssh-agent nie działa. Możesz go uruchomić / uruchomić za pomocą:
ssh-agent bash
(dzięki @Richard w komentarzach), a następnie uruchomić ponowniessh-add -l
źródło
ssh-agent bash
i kontynuować życie. W życiu jak zawsze;ssh-agent
nie jest gwarantowane jako spójna implementacja we wszystkich systemach.Para kluczy (klucze prywatny i publiczny) będzie miała ten sam odcisk palca; więc w przypadku, gdy nie pamiętasz, który klucz prywatny należy do którego klucza publicznego, znajdź dopasowanie, porównując ich odciski palców.
Najczęściej głosowana odpowiedź Marvina Vinto stanowi odcisk palca publicznego pliku klucza SSH. Można również zapytać o odcisk palca odpowiedniego prywatnego klucza SSH, ale wymaga on dłuższej serii kroków, jak pokazano poniżej.
Załaduj agenta SSH, jeśli jeszcze tego nie zrobiłeś. Najłatwiej jest wywołać
lub
(lub inną używaną powłokę).
Załaduj klucz prywatny, który chcesz przetestować:
Zostaniesz poproszony o wprowadzenie hasła, jeśli klucz jest chroniony hasłem.
Teraz, jak powiedzieli inni, pisz
fd:bc:...
to odcisk palca, którego szukasz. Jeśli jest wiele kluczy, wydrukowanych zostanie wiele wierszy, a ostatni wiersz zawiera odcisk palca ostatnio załadowanego klucza.Jeśli chcesz zatrzymać agenta (tj. Jeśli wywołałeś krok 1 powyżej), po prostu wpisz `exit 'na powłoce, a wrócisz do powłoki przed załadowaniem agenta ssh.
Nie dodam nowych informacji, ale mam nadzieję, że ta odpowiedź jest jasna dla użytkowników na wszystkich poziomach.
źródło
ssh-add -l
issh-keygen -l
zwraca ten sam odcisk palca dla danej pary kluczy. Ponadto powinna to być mała litera-l
, a nie wielkie litery.ssh-add -l
i zwracamssh-keygen -l
ten sam odcisk palca dla danej pary kluczy. Ale nie rozumiem, co było nie tak z moimi oryginalnymi stwierdzeniami z pierwszego akapitu. Dodałem zdanie w celu wyjaśnienia.ssh-agent
. Zakładając,PRIVKEY
że ustawiono plik klucza prywatnego i plikPUBKEY
(początkowo nieistniejący) plik klucza publicznego, wykonaj:ssh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"
aby ponownie wygenerować klucz publiczny SSH, tossh-keygen -E md5 -l -v -f "${PUBKEY}"
jeśli chcesz skrót MD5 lub tylko skrótssh-keygen -l -v -f "${PUBKEY}"
SHA-256 (SHA-256 jest teraz domyślny).Najszybszy sposób, jeśli klucze znajdują się w agencie SSH:
Każdy klucz w agencie zostanie wydrukowany jako:
źródło
Odtwarzam tutaj treść z forów AWS , ponieważ uznałem ją za przydatną w moim przypadku użycia - chciałem sprawdzić, który z moich kluczy pasuje do tych, które zaimportowałem do AWS
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c
Gdzie: -
primary.pem
jest kluczem prywatnym do sprawdzeniaźródło
działa również w systemie Mac OS X 10.8 (Mountain Lion) - 10.10 (Yosemite).
Obsługuje również opcję
-E
określenia formatu linii papilarnych, więc w przypadku, gdy potrzebny jest MD5 (jest często używany, np. Przez GitHub), po prostu dodaj-E md5
do polecenia.źródło
man ssh-add
tej opcji-l
jest „Wyświetla odciski palców wszystkich tożsamości obecnie reprezentowanych przez agenta”W systemie Windows, jeśli korzystasz z PuTTY / Pageant, odcisk palca jest wyświetlany po załadowaniu klucza PuTTY (.ppk) do Pageant. Jest to przydatne, jeśli zapomnisz, którego używasz.
źródło
To jest funkcja powłoki, której używam, aby uzyskać odcisk palca klucza SSH do tworzenia kropelek DigitalOcean :
Umieść go w swoim
~/.bashrc
źródle, a następnie otrzymasz odcisk palca w następujący sposób:źródło
Jeśli Twój agent SSH jest uruchomiony, to znaczy, że tak
aby wyświetlić listę odcisków palców RSA wszystkich tożsamości, lub
-L
klucze publiczne.Jeśli agent nie działa, spróbuj:
A dla twoich kluczy publicznych:
Jeśli pojawi się komunikat: „ Agent nie ma tożsamości. ”, najpierw musisz wygenerować klucz RSA
ssh-keygen
.źródło
/etc/ssh/ssh_host_ed25519_key.pub
. Pozostaje druga część pytania: czy jest jakaś wada korzystania z tego automatycznie generowanego klucza?Czasami możesz mieć kilka kluczy w swoim
~/.ssh
katalogu i nie wiem, który pasuje do odcisku palca pokazanego przez GitHub / Gitlab / etc.Oto jak wyświetlić nazwy plików kluczy i odciski palców MD5 wszystkich kluczy w
~/.ssh
katalogu:(Aby poznać znaczenie parametrów, zapoznaj się z odpowiedzią na temat
find
polecenia .Pamiętaj, że prywatne / publiczne pliki należące do jednego klucza mają ten sam odcisk palca, więc zobaczysz duplikaty.
źródło
Google Compute Engine pokazuje odcisk palca klucza hosta SSH na wyjściu szeregowym instancji Linuksa. Interfejs API może pobrać te dane z GCE i nie trzeba logować się do instancji.
Nie znalazłem go nigdzie indziej niż z wyjścia szeregowego. Myślę, że odcisk palca powinien znajdować się w bardziej przyjaznym dla programisty miejscu.
Wydaje się jednak, że zależy to od rodzaju instancji. Korzystam z instancji Debian 7 (Wheezy) f1-micro.
źródło
Aby sprawdzić zdalny serwer SSH przed pierwszym połączeniem, możesz zajrzeć na stronę www.server-stats.net/ssh/ aby zobaczyć wszystkie klucze SHH dla serwera, a także od kiedy klucz jest znany.
To nie jest jak certyfikat SSL, ale zdecydowanie należy to zrobić przed pierwszym połączeniem z dowolnym serwerem SSH.
źródło
W Fedorze robię [locate ~ / .ssh], co mówi mi, że klucze to @
źródło
~/.ssh/id*.pub
jest) i chce uzyskać odciski palców.