Цей підручник під назвою: SSH: Перетворити OpenSSH в SSH2 і навпаки, здається, пропонує те, що ти шукаєш.
Перетворити ключ OpenSSH в ключ SSH2
Запустіть версію ssh-keygen
OpenSSH відкритого ключа 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 ----
Трохи погугливши, я наткнувся на це розмиття зі статті під назвою: Як конвертувати файли приватного ключа OpenSSH у SSH . Здавалося, що сайт перебуває вгору та вниз, але, переглядаючи кеш-пам'ять Google для цієї сторінки, я виявив таке розмиття:
Як конвертувати файли приватного ключа OpenSSH у файли приватного ключа SSH.com?
Це неможливо зробити програмою ssh-keygen, хоча більшість чоловічих сторінок говорять, що це можливо. Вони відлякують це, щоб ви використовували кілька відкритих ключів. Єдина проблема полягає в тому, що RCF не дозволить вам зареєструвати більше одного відкритого ключа.
У статті йдеться про спосіб перетворення приватного ключа opensh до приватного ключа ssh.com за допомогою інструмента PuTTY puttygen
. ПРИМІТКА: puttygen
можна запустити з Windows та Linux.
Відкрийте 'puttygen' та генеруйте 2048-бітну пару публічних / приватних ключів rsa. Переконайтеся, що ви додали пароль після його генерування. Збережіть відкритий ключ як "puttystyle.pub" і збережіть приватний ключ як "puttystyle". Програма шпаклівки та програми SSH.com мають спільний формат відкритого ключа, але програма шпаклівки та OpenSSH мають різні формати відкритого ключа. Ми повернемося до цього пізніше. Ви повинні мати можливість завантажувати обидва ключі шпаклівки в програму шпаклівки. Однак формати приватних ключів для putty та SSH.com не однакові, тому вам доведеться створити перетворений файл. Перейдіть у меню конверсій та експортуйте ключ SSH.com. Збережіть це як "sshstyle". Тепер поверніться до меню конверсій та експортуйте відкритий ключ. Збережіть це як "openssh". Ці назви довільні, і ви можете вибрати власне. Пізніше вам доведеться змінити імена для установки на машині OpenSSH. Дивись нижче.
З огляду на вищесказане, я розробив наступне puttygen
, використовуючи попередньо створену приватну / публічну відкриту пару ключів:
# 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
Порівняння відкритих ключів:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY