Existuje způsob, jak převést existující pár klíčů OpenSSH na pár klíčů SSH2 (formát ssh.com)?
UPD :protože existuje několik odpovědí o ssh-keygen
se najednou objevilo, vysvětlím, odkud jsem přišel (také to bude hezká odpověď na otázku „co jsi zkusil?“).
$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical
Jinými slovy, ssh-keygen
vrací stejné klíče pro soukromé a veřejné vstupní klíče (haše původních souborů se samozřejmě liší, zkontroloval jsem je dvakrát, abych se ujistil, že jde o platné soukromé a veřejné klíče). Zdá se, že jde o ssh-keygen
generuje pouze veřejný klíč pro soukromý nebo veřejný vstupní klíč.
Dělám to špatně, nebo je to normální chování?
Přijatá odpověď:
Zdá se, že tento tutoriál s názvem:SSH:Převod OpenSSH na SSH2 a naopak nabízí to, co hledáte.
Převést klíč OpenSSH na klíč SSH2
Spusťte OpenSSH verzi ssh-keygen
na vašem veřejném klíči OpenSSH, abyste jej převedli do formátu potřebného pro SSH2 na vzdáleném počítači. Toto musí být provedeno na systému, na kterém běží OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Převést klíč SSH2 na klíč OpenSSH
Spusťte OpenSSH verzi ssh-keygen
na vašem veřejném klíči ssh2, abyste jej převedli do formátu potřebného pro OpenSSH. To je třeba provést na systému, na kterém běží OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Výukový program dále ukazuje, jak generovat různé typy klíčů a jak je exportovat do jiných formátů.
Použít toto pro soukromé a veřejné klíče?
Podle manuálové stránky by odpověď byla ano. Podívejte se na manuálovou stránku pro ssh-keygen
uvádí následující pro -e
přepínač:
-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 v praxi by to vypadalo, že ssh-keygen
nelze převádět soukromé klíče, pouze veřejné.
Například:
# 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
Pohled na výsledné extrahované klíče to potvrzuje:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Trochu jsem googloval jsem narazil na tuto reklamu z článku s názvem:Jak převádíte soubory soukromého klíče OpenSSH na SSH. Zdálo se, že web je nahoru a dolů, ale při hledání této stránky v mezipaměti Google jsem našel následující oznámení:
Jak převedete soubory soukromého klíče OpenSSH na soubory soukromého klíče SSH.com?
Nelze to provést programem ssh-keygen, i když většina manuálových stránek
říká, že může. Odrazují od toho, že budete používat více veřejných
klíčů. Jediný problém je, že RCF vám nedovolí zaregistrovat více
než jeden veřejný klíč.
Článek dále popisuje metodu převodu soukromého klíče openssh na soukromý klíč ssh.com pomocí puttygen
společnosti PuTTY nářadí. POZNÁMKA: puttygen
lze spustit z Windows a Linuxu.
Otevřete „puttygen“ a vygenerujte 2048bitový rsa veřejný/soukromý klíčový pár.
Po vygenerování nezapomeňte přidat heslo. Uložte veřejný
klíč jako „puttystyle.pub“ a uložte soukromý klíč jako „puttystyle“. Program
putty a programy SSH.com sdílejí společný formát veřejného klíče
, ale program putty a OpenSSH mají odlišné formáty veřejného klíče.
K tomu se vrátíme později. Měli byste být schopni načíst oba
klíče puttystyle do programu putty. Formáty soukromého klíče
pro putty a SSH.com však nejsou stejné, a proto budete muset
vytvořit převedený soubor. Přejděte do nabídky konverzí a exportujte
klíč SSH.com. Uložte jej jako „sshstyle“. Nyní se vraťte do nabídky konverzí
a exportujte klíč openssh. Uložte jej jako „openssh“. Tyto názvy
jsou libovolné a můžete si vybrat vlastní. Později budete muset změnit
názvy pro instalaci na počítači OpenSSH. Viz níže.
Vzhledem k výše uvedenému jsem pomocí puttygen
vypracoval následující , pomocí našeho dříve vygenerovaného soukromého/veřejného páru klíčů 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
Komentáře jsou odlišné, takže nemůžete jen porovnat výsledné soubory, takže pokud se podíváte na prvních pár řádků kláves, je to docela dobrý indikátor toho, že výše uvedené příkazy byly úspěšné.
Související:Ubuntu – Jak nakonfigurovat externí IP adresy pro hosty LXC?Porovnání veřejných klíčů 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
Porovnání veřejných openssh klíčů:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY