PuTTYgenによって生成されたSSH秘密鍵をインストールするにはどうすればよいですか?


50

PuTTYgenによって生成された公開キーをauthorized_keysファイルに追加して、自宅のPCからの接続を受け入れるようにLinuxサーバーをセットアップします。

今、私は同じマシンに接続しようとしていますが、今回は別のUbuntuマシンから接続しようとしています。同じ秘密鍵を使用する必要があり(奇妙な理由で、尋ねないでください。)、クライアントのUbuntuにそれをインストールする方法がわかりません。

他の形式に変換する必要がありますか?

回答:


25

あなたの秘密鍵がubuntuで機能するかどうかはわかりませんが、一見の価値があります。キーをコピーして/home/yourName/.ssh/、秘密キーをとしてid_rsa、公開キーをとして指定しid_rsa.pubます。

それが機能しない場合はssh-keygen、次のように新しい公開キーを使用してサーバーにコピーし、sshを使用して独自のsshキーペアを作成できます。

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

使ったことはありませんが、ssh-agentはssh-keyの管理にも使用できると聞いています。


3
これはubuntuで動作します。ただし、古いキーを使用していないことがわかっている場合を除き、既存のid_rsaキーを既に持っている場合(新しいキーをその上にコピーして)上書きしないようにしてください。
デビッドオニール

5
この答えは完全にあなたが得るか、どのような情報が欠けているid_rsa(PuTTYgenをしてキーを変換することによって)ファイルを
マーティンPrikrylを

38

偶然、私はこれをしなければなりませんでした。キーをOpenSSH形式に変換する必要があります。それを行うためのコマンドは次のとおりです。

ssh-keygen -i -f puttygen_key > openssh_key

その後、通常のSSHキーと同じようにopenssh_keyin の内容をコピーでき.ssh/authorized_keysます。

-iオプションが伝え一つでssh-keygen変換を行うこと。この-fオプションは、変換するキーの場所を示します。

これは、暗号化されていないキーに対して機能します。公開鍵は暗号化されていませんが、秘密鍵はおそらく暗号化されています。秘密鍵の暗号化を解除し、変換してから再暗号化する方法があるかどうかはわかりません。他の答えが示唆するように、新しいキーを使用する方が簡単かもしれません(そして、それssh-agentは現在の問題とは直交していますが、使用することをお勧めします)。


1
この答えは私の問題を解決します。キーを変換する必要がありました。ありがとう
レティシア14

1
これは、公開鍵を変換することで問題の一部のみを解決します。@ user18617の回答を使用して秘密鍵も変換しました。
14 14


@ÉdouardLopez puttygen_keyは、秘密キー(* .ppk)ではなく、公開キーにする必要があります。
エンドリス

28

Andrew Staceyは、LinuxでキーをOpenSSH形式に変換する方法を説明しました。

Windowsでも同じことをする場合は、次の手順を実行します。

  1. PuTTYGenを起動します。
  2. 「ロード」をクリックします。
  3. 秘密鍵を選択して、パスフレーズを入力します。
  4. 「変換」メニューから「OpenSSHキーのエクスポート」を選択します。
  5. 宛先ファイル名を選択します。

1
これはUbuntuのセクションであることがわかっていても、Mac OS Xでこれが機能したことを伝えたいだけです。上記のようにWindowsで生成された秘密キーを変換し、Macで〜/ .ssh / id_rsaにコピーしました。chmod id_rsa 600は、Macが文句を言うのを防ぎます。
リチャード

24

UbuntuでPuttyキーペアをOpenSSHキーとして再利用する方法:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

ステップ4の目的は公開キーを*〜。/ ssh / authorized_keys *に追加することなので、4を中間ステップとして実行する代わりに、次のようにPutty秘密キーを使用できます。

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys

1
ステップ4について:秘密鍵名がmykey-sec.ppkの場合、この場合のソースファイル名は通常mykey-sec.pubになります。
Kinjalディキシット

2
ファイルは完全に異なる形式を持ち、キーペア(公開キーだけでなく)に使用されるため、公開キー(おそらくRFC 4716形式)に名前を付けることmykey-pub.ppkはかなり混乱し.ppkます。
マーティンPrikryl

debian 9にputty-toolsをインストールした後、最後のputtygen行は完全に機能しました。他の行とここでの回答は機能しませんでした。
ティム

変なふうに私はなっていたputtygen: unknown output type `private‐openssh'puttygen: cannot handle more than one input file私は正確にコピーされたので、ソースコードから文字をし、完全に他の何かに私の公開鍵に改名
CPHPython

この回答でコマンドを実行して「puttygen:複数の入力ファイルを処理できません」というメッセージが表示された場合、「private-openssh」のダッシュ文字が実際のASCIIダッシュとして貼り付けられていない可能性がありますそのため、puttygenはそれを認識しません。代わりに、自分で単語を入力してください。
マットスタイル

9

PuTTY / PuTTYgenは、独自の形式のキーペアを使用します。OpenSSH形式のキーが普及しているLinuxでは動作しません。

  • PuTTYgenでは、OpenSSH ファイルで使用される形式の公開キーを直接表示(およびコピー+貼り付け)authorized_keysできます。

  • [ 公開キーの保存 ]ボタンを使用して、公開キーを.pub形式(RFC 4716)で保存できます。Linuxでは、ファイルの名前は通常id_rsa.pub(またはid_dsa.pub)です。ただし、通常は必要ありません。

  • [変換]> [OpenSSHキーのエクスポート]を使用して、OpenSSH形式で秘密キーをエクスポートします。Linuxでは、ファイルは通常名前が付けられid_rsa(またはid_dsa)、.sshフォルダーに保存されます。

公式のPuTTYgenの使用、PuTTYキージェネレーターを参照してください。

LinuxバージョンのPuTTYgenを使用して変換することもできます。Linuxバージョンは、Windowsバージョンとは反対にコマンドラインです。

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

Linuxのputtygenmanページを参照してください


2

もう1つの明確な解決策を見つけました。

上のputtygenトップメニューに続いナビゲートキー、作成-変換をクリックし、輸出opensshのキーを

ファイルのコンテンツは次で始まり、次で終わる

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • rootユーザー用そのキーファイルを/root/.ssh/as id_rsaまたはid_dsa

  • 他のユーザーの場合、そのキーファイルを/home/user/.ssh/as id_rsaまたはid_dsa

注意 :

  1. 編集する必要はありませんauthorized_keys
  2. Amazon Linuxを使用しています
  3. ファイル許可0600

1

* *注意して、ボックスへのコンソールアクセスがあることを確認してください。正しく実行しないと、コンソールから修正するまで再びsshできなくなります。

このプロセスは、思っているよりもはるかに簡単です。puttygenで生成した公開キーと秘密キーのペアを再度ロードします。puttygenでは、画面の中央に「Open SSH authorized_keysファイルに貼り付けるための公開鍵:」というウィンドウが表示されます。

ボックスの内容全体を強調表示し、control-cを押してコピーします。

LinuxボックスにSSHで接続し、「/ home / username / .ssh / authorized_keys」ファイルに貼り付けます。nanoを使用し、右クリックして貼り付けることを好みます。すべてが1行に収まるようにしてください。

必要に応じて/ etc / sshd_configファイルを変更し、sshdサービスを再起動します: "service ssh restart"

サンプルのsshd_configファイルが必要な場合はお知らせください。投稿できます。

Ubuntu 8.04、10.04、および12.04 LTSサーバーでこれを実行しましたが、滑らかに動作します。


0

このスレッドがまだアクティブかどうかはわかりませんが、UbuntuカーネルをサポートするWindows 10周年記念エディションで同様の問題に遭遇しました。Linuxマシンに接続する前にPuttyを使用していました。Linux形式でid_rsaを生成するには、puttykeygenを使用してパテ秘密鍵をロードし、変換をクリックして2番目のオプションを選択します。

Putty KeyGeneratorの機能

新しく生成されたキーファイルを開き、そのすべてのコンテンツをコピーし、コンテンツが----- BEGIN RSA PRIVATE KEY -----で終わり、----- END RSA PRIVATE KEY -----で始まることを確認します

〜/ .sshディレクトリ内のvi id_rsaにコピーした内容を貼り付けます。これは、Linuxがファイルの内容を理解しないために必要です。

これですべて、リモートサーバーにsshを試してみてください。動作するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.