Jakiś czas temu założyłem serwer na AWS i użyłem ich wygenerowanego klucza SSH. Zapisałem klucz do Lastpass i udało mi się go wcześniej odzyskać i uruchomić. Jednak po ponownym spróbowaniu tego dzisiaj nie mogę go uruchomić.
-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name
Próbowałem ssh -i key_name
, ssh-keygen -f key_name
ale nic nie działa, zawsze pojawia się ten komunikat o błędzie:
Load key "key_name": invalid format
Czy jest jakiś sposób, aby to naprawić?
----BEGIN RSA PRIVATE KEY-----
i kończy na-----END RSA PRIVATE KEY-----
. Plus kiedyś działał.To, co zrobiłem, aby rozwiązać ten problem, polega na tym, że używam do konwersji pliku PPK za pomocą
PuttyGen
.Najpierw załaduj
urkey.PPK
, a następnie w menu konwersji kliknij eksport do formatu pliku openssh. Spowoduje to utworzenie pliku newkey.teraz,
ssh -i "newkey" [email protected]
Gotowy. Mam nadzieję, że to pomoże.
źródło
Poprosiłem openssh o użycie konkretnego pliku tożsamości, określając go w pliku .ssh / config.
Oryginalna konfiguracja robocza miała
To przestało działać bez żadnych zmian. Przy odrobinie myślenia zastąpiłem „ścieżkę do pliku klucza publicznego” powyżej „ścieżką do pliku klucza prywatnego”. To się udało. Powodem jest to, że zarówno pliki kluczy publicznych, jak i prywatnych mają duże liczby związane z peudoprime zgodnie z algorytmem RSA. Jeśli zamienisz plik klucza prywatnego na plik klucza publicznego, te numery kryptograficzne nie zostaną poprawnie wyodrębnione z bloku base64 zapisanego w plikach kluczy. Wygląda na to, że niektóre wersje ssh mogą rozpoznać rozszerzenie .pub i użyć go do zidentyfikowania poprawnego pliku klucza prywatnego - a inne wersje tego nie robią. Jest to kolejny sposób, w jaki ten błąd może się zdarzyć. Mam nadzieję, że to komuś pomoże.
źródło
config
plik instalacyjnypath_to_public_key
i wszystko działało. Jednak gdy Mac wykonał twardy restart i kilka dni później próbowałem to zrobićgit push
, zacząłem otrzymywać powyższy błąd. Ale kiedy teraz to zmieniłem,path_to_private_key
wszystko działa ... Hmmm. Nie jestem pewien, dlaczego ..Miałem ten sam problem i okazało się, że z jakiegoś powodu miałem w pliku separatory linii w stylu Windows (CRLF).
Ponadto plik musi kończyć się pojedynczym plikiem LF.
Naprawienie ich sprawiło, że wszystko znów stało się eleganckie.
źródło
dos2unix
jest to polecenie konwersji z podziałów wiersza CRLF (w stylu Windows) na LF (w stylu Linux).Powinieneś przekonwertować swój klucz .ppk na klucz OpenSSH
Oto jak to zrobić :
źródło
Właśnie wpadłem na to dzisiaj, kiedy pisałem narzędzia do tagowania git dla mojego potoku CI.
Oto różnica między moimi dwoma kluczami:
Zmieniłem kod w taki sposób:
A teraz działa mój klucz ssh.
TL; DR - Chyba musisz mieć nową linię na końcu swojego klucza prywatnego.
źródło
W moim przypadku okazało się, że miałem nowe linie między początkowymi / końcowymi „nagłówkami” a kluczowymi danymi:
Usuwanie dodatkowych nowych linii, tak się stało
rozwiązał mój problem.
źródło
Użyj klucza prywatnego zamiast klucza publicznego.
źródło
Miałem ten problem, ponieważ miałem klucz w ~ / .ssh, który w rzeczywistości był nieprawidłowym formatem i miałem dużo kluczy, co oznaczało, że SSH próbował je wszystkie, mimo że w poleceniu podałem swój plik tożsamości. Po prostu się nie udaje, ponieważ myślę, że mogę wypróbować tylko 5 kluczy, a potem zostawił mi ten błąd, który był uzasadniony, tylko z powodu niewłaściwego pliku tożsamości. Rozwiązaniem było po prostu użyć
IdentitiesOnly yes
w mojej ~ / .ssh / config.źródło
Miałem ten błąd, ponieważ na początku pliku klucza była pusta linia. Łatwo przeoczyć, jeśli
cat
go wygaszasz.źródło
Jest to również błąd, który emituje ssh (przynajmniej niektóre wersje), jeśli masz hasło na kluczu prywatnym i wpisujesz hasło niepoprawnie podczas próby połączenia.
(W szczególności stało mi się to z: OpenSSH_7.6p1, LibreSSL 2.6.2, który jest wbudowanym SSH dla Mac OS X 10.13.6.)
Więc dokładnie sprawdź, czy używasz właściwego hasła i czy CAPS LOCK jest wyłączony.
źródło
Pamiętaj, aby zmienić nazwę klucza PRYWATNEGO i usunąć rozszerzenie pliku, które jest problemem.
Kroki, które podjąłem
Utwórz swój klucz publiczny:
Upewnij się, że znajdujesz się w tym samym katalogu, w którym masz klucz prywatny
Jak utworzyć klucz publiczny:
upewnij się, że klucz PUBLIC ma rozszerzenie pliku .pub
po tym zapewnij odpowiednie uprawnienia ze względów bezpieczeństwa:
NASTĘPNIE najważniejsza część i przyczyna błędu „nieprawidłowy format”
Pamiętaj, aby zmienić nazwę klucza PRYWATNEGO i usunąć rozszerzenie pliku:
Usuń .pem z klucza prywatnego.
lub jeśli na komputerze z systemem Windows zmieni nazwę klucza prywatnego, ta sama nazwa po prostu usuń
.pem
źródło