Jak przetestować publiczny / prywatny DSA keypair?

Czy istnieje łatwy sposób na sprawdzenie, czy dany klucz prywatny pasuje do danego klucza publicznego? Mam kilka *.pub i kilka *.kluczowe pliki, i muszę sprawdzić, które z którymi.

Ponownie, to są pliki pub / key, DSA.

[[0]] ja bym naprawdę wolał coś takiego...
Author: Jeff Atwood, 2008-11-08

10 answers

Znalazłem sposób, który wydaje się działać lepiej dla mnie:

ssh-keygen -y -f <private key file>

To polecenie wyświetli klucz publiczny dla danego klucza prywatnego, więc po prostu porównaj Dane wyjściowe z każdym *.akta pubu.

 239
Author: Loki,
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
2008-11-08 12:22:00

Zawsze porównuję hash MD5 modułu używając tych poleceń:

Certificate: openssl x509 -noout -modulus -in server.crt | openssl md5
Private Key: openssl rsa -noout -modulus -in server.key | openssl md5
CSR: openssl req -noout -modulus -in server.csr | openssl md5

Jeśli hashe pasują, wtedy te dwa pliki idą w parze.

 50
Author: Robert,
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
2008-11-11 13:48:05

Dla kluczy DSA, użyj

 openssl dsa -pubin -in dsa.pub -modulus -noout

Aby wydrukować klucze publiczne, następnie

 openssl dsa -in dsa.key -modulus -noout

Aby wyświetlić klucze publiczne odpowiadające kluczowi prywatnemu, porównaj je.

 46
Author: Martin v. Löwis,
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
2008-11-08 11:06:04

Zakładając, że masz klucze publiczne wewnątrz certyfikatów x.509 i zakładając, że są to klucze RSA, to dla każdego klucza publicznego wykonaj

    openssl x509 -in certfile -modulus -noout

Dla każdego klucza prywatnego, do

    openssl rsa -in keyfile -modulus -noout

Następnie dopasuj klucze według modułu.

 14
Author: Martin v. Löwis,
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
2008-11-08 10:50:48

Sprawdzenie może być łatwiejsze dzięki diff:

diff <(ssh-keygen -y -f <private_key_file>) <public key file>

Jedyną dziwną rzeczą jest to, że diff nic nie mówi, jeśli pliki są takie same, więc będziesz informowany tylko wtedy, gdy publiczne i prywatne nie pasują do siebie.

 13
Author: John D.,
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
2014-03-23 18:50:38

Usuń klucze publiczne i wygeneruj nowe z kluczy prywatnych. Przechowuj je w oddzielnych katalogach lub użyj konwencji nazewnictwa, aby utrzymać je prosto.

 6
Author: Bill the Lizard,
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
2008-11-08 12:35:59

Jeśli jesteś w systemie Windows i chcesz użyć GUI, za pomocą puttygen możesz zaimportować do niego swój klucz prywatny:

Tutaj wpisz opis obrazka

Po zaimportowaniu możesz zapisać jego klucz publiczny i porównać go ze swoim.

 2
Author: Zac,
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-09-27 10:49:06

Wprowadź następujące polecenie, aby sprawdzić, czy klucz prywatny i klucz publiczny są dopasowanym zestawem (identycznym) lub nie są dopasowanym zestawem (różniącym się) w $USER/.katalog ssh.

diff -qs <(ssh-keygen -yf ~/.ssh/id_rsa) <(cut -d ' ' -f 1,2 ~/.ssh/id_rsa.pub)

Wyjście będzie wyglądać jak jedna z tych linii.

Files /dev/fd/63 and /dev/fd/62 are identical

Files /dev/fd/63 and /dev/fd/62 differ

Napisałem skrypt powłoki, którego użytkownicy używają do sprawdzania uprawnień do plików ich~/.SSH / pliki i dopasowany zestaw kluczy. Rozwiązuje moje wyzwania związane z incydentami użytkownika z konfiguracją ssh. To może Ci pomóc.

https://github.com/BradleyA/docker-scripts/tree/master/ssh
 1
Author: Bradley Allen,
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-10 18:26:51

Zaszyfruj coś kluczem publicznym i sprawdź, który klucz prywatny go odszyfruje.

Ten artykuł code project autorstwa Jeffa Atwooda implementuje uproszczoną owijkę wokół klas.NET crypto. Zakładając, że te klucze zostały stworzone do użycia z RSA, Użyj klasy asymetrycznej z kluczem publicznym do szyfrowania i tak samo z kluczem prywatnym do odszyfrowania.

 0
Author: Mitch Wheat,
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
2008-11-08 09:44:45

Wystarczy użyć puttygen i załadować do niego swój klucz prywatny. Oferuje różne opcje, np. eksport klucza publicznego coressponding.

 -2
Author: user2987067,
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
2013-11-13 09:41:06