LoginSignup
17
21

More than 3 years have passed since last update.

RSA鍵のフォーマットを作って見て変換して体験実習しみた

Last updated at Posted at 2017-11-01

環境

  • 鍵作りに使ったもの
    • ssh-keygen : Macにあるもの
    • Puttygen : Release 0.70
    • TeraTerm : Version 4.96
  • クライアント側のOS
    • macOS Soerra Version 10.12.6
    • Windows10 Pro 64bit
  • サーバ側のOS : CentOS7
    • Macの中のVirtualBoxにいます

鍵を作る方法

鍵のフォーマット

PEM形式

  • 特徴1. -----BEGIN xxxxxxxxxxxx -----って書いてある
  • 特徴2. 拡張子が.pemってなってることがある
  • :loudspeaker:鍵の末尾に「=」がつくことがある
    • Base64でエンコードしているので変換で余った部分に「=」が使われる
    • Base64 - Wikipedia
  • この形式を必要とするもの
    • SECSH形式の公開鍵と秘密鍵
    • OpenSSH形式の公開鍵

.DERと同じASN.1のバイナリデータをBase64によってテキスト化されたファイルです。
ファイルの先頭に -- BEGIN... という行があるのをみたら「PEMだな」と思えば良いです。
opensslコマンドのデフォルトのエンコーディングなので、たとえば何も指定せずに鍵を生成すると PEM形式のファイルが作られます。
RSA鍵、証明書のファイルフォーマットについて - Qiita

SECSH形式(ssh.com)

  • 特徴1. 公開鍵は、---- BEGIN SSH2 PUBLIC KEY ----って書いてある
    • Puttygenにおいて特に設定無しで出力すると拡張子は.pubになる
  • 特徴2. 秘密鍵は、---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----って書いてある
Puttygen製公開鍵
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "{コメント}"
AAAA{最初の行}
{改行あり文字列}
---- END SSH2 PUBLIC KEY ----

OpenSSH形式

  • 特徴1. 公開鍵は、ssh-rsaで始まって全体が1行になっている
    • TeraTermにおいて特に設定無しで出力すると拡張子は.pubになる
  • 特徴2. 秘密鍵は、-----BEGIN RSA PRIVATE KEY-----って書いてある
  • この形式を必要とするもの
    • Tera Term
ssh-keygen製公開鍵
ssh-rsa AAAA{改行なし文字列} {ユーザ名}@{PC名}
TeraTerm製公開鍵
ssh-rsa AAAA{改行なし文字列} {ユーザ名}@{PC名}
Puttygen製の鍵をssh-keygenで変換した公開鍵
ssh-rsa AAAA{改行なし文字列}
ssh-keygen製秘密鍵
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,8B5E34DBBBC0801DDDC2A5A241775435

{改行あり文字列}
-----END RSA PRIVATE KEY-----
TeraTerm製秘密鍵
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,7C930B26ED8CEE374948185658236DAC

{改行あり文字列}
-----END RSA PRIVATE KEY-----
Puttygen製の鍵をPuttygenでOpenSSH形式に変換した秘密鍵
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,F3C7A665262E1B0D

{改行あり文字列}
-----END RSA PRIVATE KEY-----

Putty形式

  • 特徴1. 秘密鍵の拡張子は、.ppk
  • 特徴2. :loudspeaker:この形式の公開鍵はない
  • 特徴3. 秘密鍵は、PuTTY-User-Key-File-2: ssh-rsaって書いてある
  • この形式を必要とするもの
    • Putty
    • WinSCP
Puttygen製秘密鍵
PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: {コメント}
Public-Lines: 6
AAAA{最初の行}
{改行あり文字列}
Private-Lines: 14
{改行あり文字列}
Private-MAC: 811871db936602fd5c01593aa7273dcc79eab6e2

鍵のフォーマットを説明しているサイト集

鍵のフォーマットを変換する方法

ssh-keygenを利用する
Putty形式/SECS形式 > OpenSSH形式
$ ssh-keygen -i -f {公開鍵}.pub > authorized_keys

OpenSSH形式 > SECS形式
$ ssh-keygen -f {公開鍵} -e -m pem
17
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
21