Преобразуйте закрытый ключ OpenSSH в закрытый ключ SSH2

Сборка gcc имеет способность загрузить себя без любого существующего компилятора в системе. Необходимо смочь загрузить и распаковать gcc и создать его в chroot, не имея необходимость копировать что-либо снаружи. Это было некоторое время, так как я сделал это, но я помню, что это было довольно безболезненным.

Посмотрите на инструкции по сборке для gcc, которые детализируют этот процесс. Вы захотите создать собственный компилятор, и все шаги должны быть выполнены в Вашем chroot, так, чтобы gcc был создан для соответствия той системе.

29
24.07.2013, 08:54
2 ответа

Это учебное руководство названо: SSH: Преобразуйте OpenSSH в SSH2, и наоборот, кажется, предлагает то, что Вы ищете.

Преобразуйте ключ OpenSSH к ключу SSH2

Выполните версию OpenSSH ssh-keygen на Вашем открытом ключе OpenSSH для преобразования его в формат, необходимый SSH2 на удаленной машине. Это должно быть сделано на системном выполнении OpenSSH.

$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub

Преобразуйте ключ SSH2 к ключу OpenSSH

Выполните версию OpenSSH ssh-keygen на Вашем ssh2 открытом ключе для преобразования его в формат, необходимый OpenSSH. Это должно быть сделано на системном выполнении OpenSSH.

$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub

Учебное руководство продолжает показывать, как и генерировать различные типы ключей и как экспортировать их в другие форматы.

Использовать это для частных и открытых ключей?

Согласно странице справочника, ответ был бы да. Рассмотрение страницы справочника для ssh-keygen это указывает следующее для -e переключатель:

 -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.

Но на практике это появилось бы это ssh-keygen не может преобразовать закрытые ключи, только общедоступные.

Например:

# 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

Рассмотрение получающихся извлеченных ключей подтверждает это:

$ grep BEGIN newkey_e newkey.pub_e 
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----

Поиск с помощью Google немного я столкнулся с этой аннотацией от названной статьи: Как Вы преобразовываете Файлы секретных ключей OpenSSH в SSH. Сайт, казалось, был вверх и вниз, но смотрящий в кэше Google для этой страницы я нашел следующую аннотацию:

Как Вы преобразовываете Файлы секретных ключей OpenSSH в Файлы секретных ключей SSH.com?

Это не может быть сделано ssh-keygen программой даже при том, что в большинстве страниц справочника говорится, что это может. Они препятствуют ему так, чтобы Вы использовали несколько открытых ключей. Единственная проблема состоит в том, что RCF не позволит Вам регистрировать больше чем один открытый ключ.

Статья продолжает касаться метода для преобразования openssh закрытого ключа к закрытому ключу ssh.com с помощью PuTTY puttygen инструмент.Примечание: puttygen может быть выполнен из Windows & Linux.

Откройте 'puttygen' и генерируйте 2 048 битов rsa пара "открытый/закрытый ключ". Удостоверьтесь, что Вы добавляете пароль после того, как он сгенерирован. Сохраните открытый ключ как "puttystyle.pub" и сохраните закрытый ключ как "puttystyle". Программы программы и SSH.com шпаклевки совместно используют общий формат с открытым ключом, но программа шпаклевки и OpenSSH имеют различные форматы с открытым ключом. Мы возвратимся к этому, позже. Необходимо смочь загрузить обоих puttystyle ключи в программу шпаклевки. Однако форматы с закрытым ключом для шпаклевки и SSH.com не являются тем же и таким образом, необходимо будет создать преобразованный файл. Войдите в меню преобразований и экспортируйте ключ SSH.com. Сохраните его как "sshstyle". Теперь вернитесь к меню преобразований и экспортируйте openssh ключ. Сохраните его как "openssh". Эти имена произвольны, и можно выбрать собственное. Необходимо будет изменить имена для установки на машине OpenSSH, позже. Посмотрите ниже.

Данный вышеупомянутое я разработал следующее использование puttygen, использование нашей ранее сгенерированной частной/общедоступной 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

Комментарий отличается, таким образом, Вы не можете только сравнить получающиеся файлы, поэтому при рассмотрении первых нескольких строк ключей это - довольно хороший индикатор, что вышеупомянутые команды были успешны.

Сравнение общедоступных ключей 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

Сравнение общественности openssh ключи:

$ cut -c 1-100 newkey.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

$ cut -c 1-100 newkey.pub_puttygen-openssh 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
43
27.01.2020, 19:38
  • 1
    и что относительно преобразования с закрытым ключом? –  ДМИТРИЙ МАЛИКОВ 23.07.2013, 18:17
  • 2
    @ДМИТРИЙМАЛИКОВ - почему это имело бы значение? Я попробовал его, и это, кажется, работает или на закрытые или на открытые ключи. –  slm♦ 23.07.2013, 18:23
  • 3
    Не уверенный, что это возвращает допустимый закрытый ключ для меня: $> a="$(ssh-keygen -e -f ~/.ssh/id_rsa)m"; b="$(ssh-keygen -e -f ~/.ssh/id_rsa.pub)m"; md5sum <<< $a; md5sum <<< $b ce615aa3e39e274d0bd81064399cedf8 - ce615aa3e39e274d0bd81064399cedf8 -. Хеши исходных файлов отличаются, лицевая сторона. Кажется, что это возвращает открытый ключ для частного или общедоступного входного ключа. –  ДМИТРИЙ МАЛИКОВ 23.07.2013, 18:28
  • 4
    @ДМИТРИЙМАЛИКОВ - посмотрите мои обновления ответа. Вы корректны это ssh-keygen отдает открытые ключи. Я разработал метод на основе дополнительного исследования. LMK, если это приемлемо. –  slm♦ 23.07.2013, 21:47
  • 5
    puttygen могут быть хитрыми: puttygen <OpenSSH_priv_key> -O public -o id_rsa_ssh2_puttygen{.pub} (-O обозначает выходной тип и -o для выходного файла). Это генерирует ssh2 закрытые и открытые ключи от сгенерированного rsa закрытого ключа OpenSSH 7.0 на 2 048 битов. Не работая над Победой Телефон 7.5 клиент (*The SSH Клиент Tommi Pirttiniemi). Но благодаря @ДМИТРИЙМАЛИКОВ и @slm для большого ответа так или иначе. @Otheus puttygen идет putty на Arch. –  tuk0z 14.10.2015, 22:21

ssh-keygenне будет экспортировать закрытый ключ в формате pem, но он преобразует существующий закрытый ключ openssh в формат pem, перезаписывая оригинал. Все, что вам нужно сделать, это изменить пароль.

Команда для преобразования файла ~/.ssh/id_rsaиз формата OpenSSH в формат SSH2 (pem )—:

ssh-keygen -p -f ~/.ssh/id_rsa -m pem

Затем введите (старую )и новую парольную фразу по запросу. Они могут быть одинаковыми или даже оба пустыми. Или вы можете указать их в строке команды -, используя опции-P(старая фраза-пароль )и-N(новая фраза-пароль ). Например, если парольная фраза пуста, и вы хотите оставить ее такой:

ssh-keygen -p -P '' -N ''-f ~/.ssh/id_rsa -m pem
10
27.01.2020, 19:38

Теги

Похожие вопросы