Czy istnieje łatwy sposób sprawdzenia, czy dany klucz prywatny pasuje do danego klucza publicznego? Mam kilka plików * .pub i kilka plików * .key i muszę sprawdzić, które z którymi są powiązane.
Ponownie, są to pliki pub / key, DSA.
Naprawdę wolałbym jakiś jednolinijkowy ...
encryption
ssl
openssl
key
Loki
źródło
źródło
id_rsa.pub.blahhost
plików i nie wiedziałem, który z nich pasuje do pojedynczegoid_rsa
klucza prywatnego i ustawiam scp bez hasła, aby móc migrować ze starych witryn. Tworzenie nowej pary kluczy nie wchodzi w grę; Mam dobrze skonfigurowane klucze i nie zamierzam tego zepsuć.Zawsze porównuję skrót MD5 modułu za pomocą tych poleceń:
Jeśli skróty pasują, te dwa pliki idą w parze.
źródło
W przypadku kluczy DSA użyj
wydrukować klucze publiczne
aby wyświetlić klucze publiczne odpowiadające kluczowi prywatnemu, a następnie je porównaj.
źródło
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
Zrób dla każdego klucza prywatnego
Następnie dopasuj klawisze według modułu.
źródło
Sprawdzenie można ułatwić dzięki diff:
Jedyną dziwną rzeczą jest to, że diff nic nie mówi, jeśli pliki są takie same, więc zostaniesz poinformowany tylko wtedy, gdy publiczne i prywatne nie pasują.
źródło
diff -s
diff -qs
zwraca prostą „identyczną / nie identyczną odpowiedź. (2) przed uruchomieniem różnicy należy usunąć komentarz z pliku klucza publicznego.Usuń klucze publiczne i wygeneruj nowe z kluczy prywatnych. Przechowuj je w osobnych katalogach lub użyj konwencji nazewnictwa, aby zachować prostotę.
źródło
Wpisz następujące polecenie, aby sprawdzić, czy klucz prywatny i klucz publiczny są zgodnymi zestawami (identycznymi), czy nie pasującymi zestawami (różnią się) w katalogu $ USER / .ssh. Polecenie cut zapobiega porównywaniu komentarza na końcu wiersza w kluczu publicznym, umożliwiając porównanie tylko klucza.
Wynik będzie wyglądał jak jedna z tych linii.
Napisałem skrypt powłoki, którego użytkownicy używają do sprawdzania uprawnień do plików ~ / .ssh / i dopasowanego zestawu kluczy. Rozwiązuje moje problemy związane z incydentami użytkowników podczas konfigurowania ssh. To może ci pomóc. https://github.com/BradleyA/docker-security-infrastructure/tree/master/ssh
Uwaga: moja poprzednia odpowiedź (z marca 2018 r.) Nie działa już z najnowszymi wydaniami openssh. Poprzednia odpowiedź: diff -qs <(ssh-keygen -yf ~ / .ssh / id_rsa) <(cut -d '' -f 1,2 ~ / .ssh / id_rsa.pub)
źródło
Jeśli jesteś w systemie Windows i chcesz użyć GUI, za pomocą puttygen możesz zaimportować do niego swój klucz prywatny:
Po zaimportowaniu możesz zapisać jego klucz publiczny i porównać go ze swoim.
źródło
Zaszyfruj coś za pomocą klucza publicznego i zobacz, który klucz prywatny to odszyfruje.
Ten artykuł dotyczący kodu projektu autorstwa Jeffa Atwooda implementuje uproszczone opakowanie wokół klas kryptograficznych .NET. Zakładając, że te klucze zostały utworzone do użytku z RSA, użyj asymetrycznej klasy z kluczem publicznym do szyfrowania i to samo z kluczem prywatnym do odszyfrowania.
źródło
Jeśli nic nie zwróci, pasują do:
źródło
Po prostu użyj puttygen i załaduj do niego swój klucz prywatny. Oferuje różne opcje, np. Eksportowanie podstawowego klucza publicznego.
źródło