GNU/Linux >> Linux の 問題 >  >> Linux

openssh秘密鍵をSsh2秘密鍵に変換しますか?

既存のOpenSSHキーのペアをSSH2(ssh.com形式)のキーのペアに変換する方法はありますか?

UPD ssh-keygenについていくつかの回答があるため 突然現れたので、私がどこから来たのかを説明します(「何を試しましたか?」についても良い答えになります)。

$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical

つまり、ssh-keygen 秘密入力キーと公開入力キーに対して同じキーを返します(元のファイルのハッシュは明らかに異なります。有効な秘密キーと公開キーであることを確認するために2回チェックしました)。 ssh-keygenのようです 秘密または公開入力鍵の公開鍵のみを生成します。

私はそれを間違っていますか、それとも正常な動作ですか?

承認された回答:

「SSH:OpenSSHをSSH2に、またはその逆に変換する」というタイトルのこのチュートリアルは、探しているものを提供しているように見えます。

OpenSSHキーをSSH2キーに変換

OpenSSHバージョンのssh-keygenを実行します 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秘密鍵ファイルにどのように変換しますか?

ほとんどのmanページで
できると言われていても、ssh-keygenプログラムでは実行できません。複数の公開キーを使用するように、彼らはそれを思いとどまらせます。
唯一の問題は、RCFでは
複数の公開鍵を登録できないことです。

この記事では、PuTTYのputtygenを使用して、openssh秘密鍵をssh.com秘密鍵に変換する方法について説明します。 道具。 注: puttygen WindowsとLinuxから実行できます。

「puttygen」を開き、2048ビットのrsa公開鍵と秘密鍵のペアを生成します。
生成後にパスワードを追加してください。公開鍵を「puttystyle.pub」として保存し、秘密鍵を「puttystyle」として保存します。
パテプログラムとSSH.comプログラムは共通の公開鍵形式を共有します
が、パテプログラムとOpenSSHは異なる公開鍵形式を持っています。
後でこれに戻ります。両方の
パテスタイルキーをパテプログラムにロードできるはずです。ただし、パテとSSH.comの秘密鍵の形式は
同じではないため、
変換されたファイルを作成する必要があります。変換メニューに移動し、
SSH.comキーをエクスポートします。 「sshstyle」として保存します。次に、変換メニューに戻り、opensshキーをエクスポートします。
「openssh」として保存します。これらの名前は
任意であり、独自の名前を選択できます。後で、OpenSSHマシンにインストールするための名前を
変更する必要があります。以下を参照してください。

上記を前提として、puttygenを使用して次のことを実行しました 、以前に生成されたプライベート/パブリック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

コメントが異なるため、結果のファイルを比較することはできません。したがって、キーの最初の数行を見ると、上記のコマンドが成功したことを示す非常に良い指標です。

関連:Ubuntu – LXCゲストの外部IPアドレスを構成する方法は?

公開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

公開opensshキーの比較:

$ cut -c 1-100 newkey.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

$ cut -c 1-100 newkey.pub_puttygen-openssh 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

Linux
  1. SFTP用にFileZillaに秘密鍵をインポートする方法

  2. LinuxでPPKファイルをOpenSSHキーに変換し、SSHを使用してログインする方法は?

  3. すでに転送されたSshキーをTmuxに転送する方法は?

  1. マシン間で秘密鍵を共有しますか?

  2. SSH2 キーベースの認証設定の総合ガイド

  3. openSSH から SSH2 への SSH Key ベースの認証設定

  1. SSH2 から OpenSSH にパスワードなしで SSH および SCP を実行する方法

  2. OpenSSH 構成ファイルについて

  3. 複数の PDF ファイルを 1 つの PDF に結合/変換する