環境
- 鍵作りに使ったもの
- 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にいます
鍵を作る方法
- ssh-keygenでRAS鍵をつくってMacからCentOS7へ接続できるようにする
- PuttygenでRAS鍵を作ってWindowsからCentOS7へ接続できるようにする
- Tera TermでRAS鍵を作ってWindowsからCentOSへ接続できるようにする
鍵のフォーマット
PEM形式
- 特徴1.
-----BEGIN xxxxxxxxxxxx -----
って書いてある - 特徴2. 拡張子が
.pem
ってなってることがある -
鍵の末尾に「=」がつくことがある
- 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
になる
- Puttygenにおいて特に設定無しで出力すると拡張子は
- 特徴2. 秘密鍵は、
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
って書いてある
Puttygen製公開鍵
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "{コメント}"
AAAA{最初の行}
{改行あり文字列}
---- END SSH2 PUBLIC KEY ----
OpenSSH形式
- 特徴1. 公開鍵は、
ssh-rsa
で始まって全体が1行になっている- TeraTermにおいて特に設定無しで出力すると拡張子は
.pub
になる
- TeraTermにおいて特に設定無しで出力すると拡張子は
- 特徴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. この形式の公開鍵はない
- 特徴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
鍵のフォーマットを説明しているサイト集
- RSA公開鍵のファイル形式とfingerprint - Qiita
- ssh.com 形式の公開鍵を OpenSSH 形式に変換する
- puttygenで作成した鍵がGitHubやSSHで利用できない時の対応 - Qiita
- ウインドウズでSSHクライアントを使おう
鍵のフォーマットを変換する方法
ssh-keygenを利用する
Putty形式/SECS形式 > OpenSSH形式
$ ssh-keygen -i -f {公開鍵}.pub > authorized_keys
OpenSSH形式 > SECS形式
$ ssh-keygen -f {公開鍵} -e -m pem