web-dev-qa-db-ja.com

SSH秘密鍵から公開鍵を取得するにはどうすればよいですか?

ssh-keygenによって生成されたSSH秘密鍵には、公開鍵部分が含まれています。秘密鍵からこの公開鍵を取得するにはどうすればよいですか?公開鍵を失ったため、この公開鍵の内容をサーバーのauthorized_keysファイルに配置する必要があり、新しい鍵ペアを作成したくありません。

または、id_rsa.pubファイルからid_rsaファイルを作成するにはどうすればよいですか?

433
Lekensteyn

サーバー障害に関する答えが見つかりました:秘密鍵から公開SSH鍵を作成しますか?

オプション-yは公開鍵を出力します:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

補足として、公開鍵のコメントは失われます。コメントが必要なサイト(Launchpad?)があるので、~/.ssh/id_rsa.pubを編集し、コメントとキーデータの間にスペースを入れて最初の行にコメントを追加する必要があります。公開キーの例を以下に切り捨てて示します。

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

SSHエージェント(バックグラウンドで実行され、何度もキーファイルパスフレーズを再入力する必要のないプログラム)に追加されたキーの場合、ssh-add -Lコマンドを使用して公開キーを一覧表示できます。 (ssh-add -lを介して)エージェントに追加されたキー。これは、SSHキーがスマートカードに保存されている場合に役立ちます(秘密キーファイルへのアクセスは不可能です)。

669
Lekensteyn

これは、Windowsを使用してリモートマシンにSSHするためのユーザー向けのソリューションであり、Amazon AWSおよびGCEのクラウドイメージを含みます。

(免責事項)

最近、このソリューションを使用して、GCEに新しくデプロイされたVMイメージにリモートでログインしました。


使用したツール:

  1. puttygen
  2. WinSCP

実行する手順:

  1. Puttygenを使用して公開/秘密キーペアを生成します。
  2. クラウドまたはリモートロケーションのサーバーに公開キーをアップロードします。

説明(方法):

  1. キー/ペアを生成するか、既存の秘密キーを使用します。

    秘密鍵がある場合:

    Puttygenを開き、ロードボタンを押して、プライベートキー(* .pem)ファイルを選択します。

    しない場合秘密鍵がありません:

    • Puttygenを開き、
    • [パラメータ]セクションで目的のキータイプSSH2 DSA(RSAまたはDSAを使用できます)を選択します。パスフレーズフィールドを空白のままにすることが重要です。
    • [生成]を押し、指示に従って(公開/秘密)キーペアを生成します。

    Sample Key Generation pic

  2. 新しい「authorized_keys」ファイルを作成します(メモ帳で):

    PuTTY Key Generatorの「OpenSSH authorized_keysファイルに貼り付けるための公開鍵」セクションから公開鍵データをコピーし、鍵データを「authorized_keys」ファイルに貼り付けます。

    このファイルにテキストが1行しかないことを確認してください。

  3. Linuxサーバーにキーをアップロードします。

    • WinSCPを開き、
    • SFTPファイルプロトコルを選択し、SSH資格情報でログインします。
    • 成功すると、リモートマシンにホームディレクトリ構造が表示されます。

    Authorized_keysファイルをリモートマシンのホームディレクトリにアップロードします。

  4. 適切な許可を設定します。

    .sshディレクトリを作成します(存在しない場合)

    authorized_keysファイルを.sshディレクトリにコピーします(これにより、既存のauthorized_keysファイルが置き換えられます。これに注意してください)。

    ファイルが存在する場合は、このファイルの内容を既存のファイルに追加するだけです。

    コマンドを実行して権限を設定します。

    Sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

これで、毎回資格情報を入力しなくても、リモートマシンにSSH接続できます。

参考文献:

  1. WindowsでのSSHキーの生成とアップロード

  2. OpenSSHキー、証明書.pemおよび.pubを使用したパスワードなしの認証

14
devprashant