「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キーに変換します
ssh-keygen
ssh2公開キーでOpenSSHバージョンを実行して、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で複数の公開鍵を登録できないことです。
この記事では、PuTTYの puttygen
ツールを使用してopenssh秘密鍵をssh.com秘密鍵に変換する方法について説明します。注: puttygen
WindowsおよびLinuxから実行できます。
「puttygen」を開き、2048ビットのrsa公開/秘密キーペアを生成します。生成されたパスワードを必ず追加してください。公開鍵を「puttystyle.pub」として保存し、秘密鍵を「puttystyle」として保存します。puttyプログラムとSSH.comプログラムは共通の公開鍵形式を共有しますが、puttyプログラムとOpenSSHは異なる公開鍵形式を持っています。これについては後で説明します。両方のputtystyleキーをputtyプログラムにロードできるはずです。ただし、puttyとSSH.comの秘密キーの形式は同じではないため、変換されたファイルを作成する必要があります。変換メニューに移動し、SSH.comキーをエクスポートします。「sshstyle」として保存します。変換メニューに戻り、opensshキーをエクスポートします。「openssh」として保存します。これらの名前は任意であり、独自の名前を選択できます。後でOpenSSHマシンにインストールするために名前を変更する必要があります。下記参照。
上記を考慮しputtygen
て、以前に生成されたprivate / public 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
公開openshキーの比較:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY