SSHっつーと、クライアント側に秘密鍵を置いてサーバ側に公開鍵を置いてポーンで接続できるというアレなのはご存知のとおりだが、この秘密鍵・公開鍵の保存形式について実は複数あるわけだ。ということなので、WindowsのSSHクライアントについてちょっとメモ。
- OpenSSH形式
読んで字のごとくOpenSSHとかが使用しているフォーマット。
秘密鍵をテキストエディタで開いて
「-----BEGIN RSA PRIVATE KEY-----」
などと書いてあったらこっち。
使用クライアントは、ttssh2(TeraTerm-UTF8) - SECSH(ssh.com)形式
“本家の”SSHが使用するフォーマット。
秘密鍵をテキストエディタで開いて
「---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----」
などと書いてあったらこっち。
使用クライアントは、Poderosa 3(旧:VaraTerm)。
追記:ろくに使ってなかったので知らなかったが、確認したら・PuTTYはさらに独自形式だった…_| ̄|O
でもって、それぞれのクライアントごとの鍵生成方法を確認。
Poderosa 3編:
- メニューから「ツール」→「SSH鍵作成ウィザード」を選択
- アルゴリズム等を適当に指定して「次へ」
- 鍵生成作業がおこなわれるので、ダイヤログの中でマウスカーソルを動かす。完了したら「次へ」
- ここで「秘密鍵を生成して保存」すると、SECSH形式の秘密鍵を取得できる。
OpenSSH形式の秘密鍵を取得する方法はない。
いっぽう、公開鍵はSECSH/OpenSSHいずれかの方式で取得できる。
通常OpenSSHだろうね...。
ttssh2(TeraTerm-UTF8)編:
- メニューから「設定」→「SSHキー生成」を選択
- キーの種類等を適当に選んで「生成」。
- 公開鍵、秘密鍵の保存ができるようになる。
ここで取得できる鍵は、いずれもOpenSSH形式。
Poderosaとは逆にSECSH形式では出力できない。
PuTTY編:
- スタートメニューから「PuTTYgen」を起動
- 「パラメータ」を適当に指定したあと「生成」ボタンを押すと、マウスカーソルを動かすよう指示が出るようので辛抱強く動かす
- 鍵の生成が完了。
ここで「公開鍵の保存」「秘密鍵の保存」をクリックすると、いずれの鍵もOpenSSH形式で取得できる。
で、これでそれぞれのSSHクライアントで秘密鍵・公開鍵は生成できるけれども、形式が違うと困ることがある。それは秘密鍵をほかのPCで使いたいとか、あるいは誰かと共有したいという場合。後者は論外っぽいんだけど、まあ、なんか事情があったとしよう。
「おいらPoderosa使ってるんだけどTeraTermに乗り換えたいよ」とかいうときもあてはまるな。
そういうときはツールを使うと、SECSH形式・OpenSSH形式相互の秘密鍵変換が可能なのでこれを利用する。ということで。
SECSH←→OpenSSH形式の相互変換はどうするの?編:
PuTTY付属のPuTTYgenを使う。
- スタートメニューからPuTTYgenを起動
- メニューの「変換」→「鍵のインポート」を選択
- 変換元の鍵ファイルを指定する
- こんな感じの画面になる
- ふたたびメニューから「変換」を選び、
OpenSSH形式に変換したい場合は「OpenSSH形式へエクスポート」
SECSH(ssh.com)形式に変換したい場合は「ssh.com形式へエクスポート」
を選択する。
という感じ。
