Jak znaleźć odcisk palca klucza RSA?

Muszę wykonać audyt klucza SSH dla GitHub, ale nie jestem pewien, jak znaleźć mój odcisk palca klucza RSA. Początkowo śledziłem przewodnik, aby zrobić konfigurację na Ubuntu 10.04 (Lucid Lynx) Box hostowany przez Linode.

Jakie jest polecenie, które muszę wprowadzić, aby znaleźć aktualny odcisk palca klucza RSA, jeśli jestem zalogowany zdalnie za pomocą PuTTY?

Author: Peter Mortensen, 2012-03-07

12 answers

Uruchom następujące polecenie, aby odzyskać odcisk palca klucza SSH (-l oznacza "listę" zamiast utworzyć nowy klucz, -f oznacza "nazwę pliku"):

$ ssh-keygen -lf /path/to/ssh/key

Na przykład na moim komputerze uruchomiłem polecenie (używając klucza publicznego RSA):

$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)

Z nowszymi wersjami ssh-keygen, Uruchom ssh-keygen -E md5 -lf <fileName>, Jeśli chcesz mieć ten sam format co Stary (dzięki, Lloyd Dewolf).

Informacje dodatkowe:

ssh-keygen -lf działa również na plikach known_hosts i authorized_keys.

Znajdź najbardziej publiczne na System Linux / Unix / OS X z find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts' (Jeśli chcesz zobaczyć domeny innych użytkowników, musisz być root lub sudo.)

ssh-add -l jest bardzo podobny, ale zawiera listę odcisków palców kluczy dodanych do twojego agenta. (Użytkownicy systemu OS X zwracają uwagę, że magiczne SSH bez hasła za pomocą pęku kluczy nie jest tym samym, co używanie SSH-agenta.)

 1003
Author: Marvin Pinto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 17:58:36

Nowsze polecenia SSH będą wyświetlać odciski palców jako SHA256 Klucz.

Na przykład:

ssh-keygen -lf ~/.ssh/id_dsa.pub 
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)

Jeśli chcesz porównać go ze starym odciskiem palca, musisz również określić, aby użyć MD5 funkcja haszowania odcisków palców.

ssh-keygen -E md5 -lf ~/.ssh/id_dsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)

Dostępne również: -E sha1

Aktualizacja... Tak... Nie należy już używać kluczy DSA dla SSH, zamiast nich należy użyć starszego klucza RSA lub nowszego klucza ecliptic.

Do tych "adminów", którzy ciągle edytują polecenie, którego użyłem w powyższym. PRZESTAŃ TO ZMIENIAĆ!

 556
Author: anthony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-29 01:46:09

Aby zobaczyć swój klucz w Ubuntu, po prostu wprowadź następujące polecenie w terminalu:

ssh-add -l

Uzyskasz taki wynik: 2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23 yourName @ ubuntu (RSA)

Jeśli jednak pojawi się błąd 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 uruchom ponownie ssh-add -l

 23
Author: Komu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-19 16:25:03

Para kluczy (klucze prywatne i publiczne) będzie miała ten sam odcisk palca; więc jeśli 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 zawiera odcisk palca publicznego pliku klucza SSH. Odcisk palca odpowiedniego prywatnego klucza SSH może być również zapytany, ale wymaga dłuższej serii kroków, jak pokazano poniżej.

  1. Załaduj SSH agencie, jeśli tego nie zrobiłeś. Najprostszym sposobem jest wywołanie

    $ ssh-agent bash
    

    Lub

    $ ssh-agent tcsh
    

    (lub innej powłoki, której używasz).

  2. Załaduj klucz prywatny, który chcesz przetestować:

    $ ssh-add /path/to/your-ssh-private-key
    

    Zostaniesz poproszony o podanie hasła, jeśli klucz jest chroniony hasłem.

  3. Teraz, jak mówili inni, wpisz

    $ ssh-add -l
    1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)
    

    fd:bc:... to odcisk palca, którego szukasz. Jeśli istnieje wiele klawiszy, zostanie wydrukowanych wiele linii, a ostatnia linia zawiera odcisk palca ostatniego załadowanego klucza.

  4. Jeśli chcesz zatrzymać agenta (np. jeśli wywołałeś Krok 1 powyżej), po prostu wpisz "exit" w powłoce, a wrócisz do powłoki przed załadowaniem agenta ssh.

Nie dodaję nowych informacji, ale mam nadzieję, że ta odpowiedź jest jasna dla użytkowników wszystkich poziomów.

 14
Author: Wirawan Purwanto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:12:19

Najszybszy sposób, jeśli Twoje klucze są w agencie SSH:

$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin

Każdy klucz w agencie zostanie wydrukowany jako:

4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)
 10
Author: cmcginty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:18:42

Odtwarzanie treści z forów AWS tutaj, ponieważ uznałem to za przydatne dla mojego 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

 8
Author: Phil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-19 23:52:56
$ ssh-add -l 

Będzie również działać na Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite).

Obsługuje również opcję -E, aby określić format linii papilarnych, więc jeśli MD5 jest potrzebny (jest często używany, np. przez GitHub), po prostu dodaj -E md5 do polecenia.

 8
Author: geeklizzard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-12 16:01:13

Jest to funkcja powłoki, której używam, aby uzyskać odcisk palca klucza SSH do tworzenia kropelek DigitalOcean:

fingerprint() {
    pubkeypath="$1"
    ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}

Włóż go do swojego ~/.bashrc, Źródło go, a następnie możesz uzyskać odcisk palca w ten sposób:

$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9
 7
Author: Bryce Guinta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:18:01

W systemie Windows, jeśli używasz PuTTY /Pageant, odcisk palca jest wyświetlany podczas ładowania PuTTY (.ppk) klucz do konkursu. Jest to bardzo przydatne, jeśli zapomnisz, którego z nich używasz.

Tutaj wpisz opis obrazka

 4
Author: Dmitri R117,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:15:22

Jeśli twój agent SSH jest uruchomiony, to jest

ssh-add -l

Aby wyświetlić listę odcisków palców RSA wszystkich tożsamości lub -L aby wyświetlić listę kluczy publicznych.

Jeśli twój agent nie działa, spróbuj:

ssh-agent sh -c 'ssh-add; ssh-add -l'

I dla Twoich kluczy publicznych:

ssh-agent sh -c 'ssh-add; ssh-add -L'

Jeśli otrzymasz wiadomość: 'agent nie ma tożsamości.', następnie musisz najpierw wygenerować swój klucz RSA przez ssh-keygen.

 2
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:13:05

Aby sprawdzić zdalny serwer SSH przed pierwszym połączeniem, możesz rzucić okiem na 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 obowiązkowa czynność przed połączeniem się z dowolnym serwerem SSH po raz pierwszy.

 0
Author: p974,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:00:03

Google Compute Engine pokazuje odcisk palca klucza hosta ssh na wyjściu szeregowym instancji Linuksa. API może pobrać te dane z GCE i nie ma potrzeby logowania się do instancji.

Nie znalazłem go nigdzie indziej, ale z wyjścia szeregowego. Myślę, że odcisk powinien być w bardziej przyjaznym dla programistów miejscu.

Wydaje się jednak, że zależy to od typu instancji. Używam instancji Debiana 7 (Wheezy) f1-micro.

 0
Author: re Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-08 18:16:51