Ten samouczek zatytułowany: SSH: Konwertuj OpenSSH na SSH2 i vice versa wydaje się oferować to, czego szukasz.
Konwertuj klucz OpenSSH na klucz SSH2
Uruchom wersję OpenSSH ssh-keygen
na kluczu publicznym OpenSSH, aby przekonwertować go na format wymagany przez SSH2 na zdalnym komputerze. Należy to zrobić w systemie z OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Konwertuj klucz SSH2 na klucz OpenSSH
Uruchom wersję OpenSSH ssh-keygen
na kluczu publicznym ssh2, aby przekonwertować go na format wymagany przez OpenSSH. Należy to zrobić w systemie z OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Samouczek pokazuje, jak zarówno generować różne typy kluczy, jak i eksportować je do innych formatów.
Używać tego do kluczy prywatnych i publicznych?
Według strony podręcznika odpowiedź brzmi „tak”. Patrząc na stronę ssh-keygen
podręcznika, znajduje się dla -e
przełącznika następujące informacje:
-e This option will read a private or public OpenSSH key file and print
the key in RFC 4716 SSH Public Key File Format to stdout. This option
allows exporting keys for use by several commercial SSH implementations.
Ale w praktyce wydaje się, że ssh-keygen
nie można konwertować kluczy prywatnych, tylko publicznych.
Na przykład:
# Make a new RSA key-pair
$ ssh-keygen -t rsa -f newkey
# attempt to extract the private key
$ ssh-keygen -e -f newkey > newkey_e
# attempt to extract the public key
$ ssh-keygen -e -f newkey.pub > newkey.pub_e
# Notice the supposed extracted private key (newkey_e) and the corresponding extracted public key (newkey.pub_e) have identical `md5sum`'s.
$ for i in *;do md5sum $i;done
d1bd1c12c4a2b9fee4b5f8f83150cf1a newkey
8b67a7be646918afc7a041119e863be5 newkey_e
13947789d5dcc5322768bd8a2d3f562a newkey.pub
8b67a7be646918afc7a041119e863be5 newkey.pub_e
Spojrzenie na uzyskane klucze wyodrębnia to:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Trochę googlując natknąłem się na ten artykuł z artykułu zatytułowanego: Jak przekonwertować pliki kluczy prywatnych OpenSSH na SSH . Strona wydawała się być w górę i w dół, ale szukając tej strony w pamięci podręcznej Google, znalazłem następujący komunikat:
Jak przekonwertować pliki kluczy prywatnych OpenSSH na pliki kluczy prywatnych SSH.com?
Nie może tego zrobić program ssh-keygen, nawet jeśli większość stron podręcznika man tak mówi. Odradzają to, abyś używał wielu kluczy publicznych. Jedynym problemem jest to, że RCF nie pozwoli ci zarejestrować więcej niż jednego klucza publicznego.
W artykule omówiono metodę konwersji klucza prywatnego openssh na klucz prywatny ssh.com za pomocą narzędzia PuTTY puttygen
. UWAGA: puttygen
można uruchomić z systemu Windows i Linux.
Otwórz 'puttygen' i wygeneruj 2048-bitową parę kluczy publiczny / prywatny RSA. Pamiętaj, aby dodać hasło po jego wygenerowaniu. Zapisz klucz publiczny jako „puttystyle.pub” i zapisz klucz prywatny jako „puttystyle”. Program putty i programy SSH.com mają wspólny format klucza publicznego, ale program putty i OpenSSH mają różne formaty klucza publicznego. Wrócimy do tego później. Powinieneś być w stanie załadować oba klucze stylu szpachli do programu szpachli. Jednak formaty klucza prywatnego dla putty i SSH.com nie są takie same, więc musisz utworzyć przekonwertowany plik. Przejdź do menu konwersji i wyeksportuj klucz SSH.com. Zapisz go jako „sshstyle”. Teraz wróć do menu konwersji i wyeksportuj klucz openssh. Zapisz go jako „openssh”. Te nazwy są dowolne i możesz wybrać własne. Będziesz musiał później zmienić nazwy instalacji na komputerze OpenSSH. Patrz poniżej.
Biorąc powyższe pod uwagę, opracowałem następującą metodę puttygen
, używając naszej poprzednio wygenerowanej prywatnej / publicznej pary kluczy openssh:
# generate ssh.com private key from private openssh key
$ puttygen newkey -O private-sshcom -o newkey.puttygen-sshcom
# generate ssh.com public key from private openssh key
$ puttygen newkey -O public -o newkey.pub_puttygen-sshcom
# generate openssh public key from private openssh key (for confirmation)
$ puttygen newkey -O public-openssh -o newkey.pub_puttygen-openssh
Komentowanie jest inne, więc nie można po prostu porównać wynikowych plików, więc jeśli spojrzysz na kilka pierwszych wierszy klawiszy, to całkiem niezły wskaźnik, że powyższe polecenia zakończyły się powodzeniem.
Porównanie publicznych kluczy ssh.com:
$ tail -n +3 newkey.pub_e | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
$ tail -n +3 newkey.pub_puttygen-sshcom | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
Porównanie publicznych kluczy openssh:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY