web-dev-qa-db-ja.com

opensshの公開鍵と秘密鍵のペアに名前を付ける方法は?

公開鍵/秘密鍵のペアを長い間使用しています。そして、私が何度も何度も何度も自分に尋ねるのとほぼ同時に、どのファイル拡張子を使用すべきかを尋ねます。少なくとも公開鍵と秘密鍵(openssh)の鍵は慣例ではないようです?

つまり、PuTTYには「PuTTY Private Key」の特別な拡張子.ppkがあり、公開鍵は拡張子なしで、または.pub付きで保存されます。私は個人的には.pubを使用しないことを好みます。Microsoftは既にMS Publisherでこの拡張機能を使用しているためです。したがって、PuTTYの場合、両方のキーを同じ名前で保存し、.ppkを秘密鍵に追加し、公開鍵には何も追加しません。そしてその場合、私はそれとともに生きることができます。どの鍵が公開鍵であり、どの鍵が秘密鍵であり、秘密鍵はPuTTY専用であるかを識別できます。

しかし、秘密のopensshキーをどうすればよいですか?拡張子なしで保存しますか?または、.opensshなどを使用しますか?また、実際に慣習がない場合、誰かがそれについて考えて、何らかのコンセプトを自分で整理した場合も、私はそれを感謝します...

前もって感謝します!

21
I-GaLaXy-I

まず、実際にキーの命名規則はありません。それらのファイル名は重要ではありません。それらはそれらを管理しなければならないあなたにとってだけ重要です。ソフトウェアはファイルの内容にのみ関係しています。

そうは言っても、OpenSSHキーファイルは単なるテキストファイルなので、.txt拡張子を付けて名前を付けることができます。

私は通常、ssh-keygenツールが使用する規則、つまりid_{key_algorithm}(つまりid_rsaまたはid_dsa)を使用して、秘密鍵と秘密鍵の名前+公開鍵の.pubid_rsa.pubまたはid_dsa.pub)。複数のキーを保持する必要がある場合は、名前の最後に識別子を追加して、id_rsa_myhostid_rsa_myhost.pubなどの名前を取得します。

18
heavyd

だから私はいくつかの名前付けの概念について考え、今このようになりました。私はPuTTYの.ppk(PuTTY秘密鍵)以外の規則がないことを知っています-したがって、これはではありません「このように行う必要があります」、それはむしろアイデアの命名概念がどのように見えるか。とにかくそれをあなたと共有したいと思った-多分それは誰かが彼自身のコンセプトを構築するのを助けるでしょう.

欲しいもの/したくないもの

  • OpenSSHとPuTTYのキーペアを使用したい
  • キーをすぐに識別できるようにして、混同できないようにしたいので、識別したい
    • アルゴリズム
    • 秘密鍵か公開鍵か
    • openSSHまたはPuTTY形式の場合
  • 名前をWindowsとUnixにしたい「互換性/準拠」(例:Linuxでスペースを使用したくない-たとえそれが公式のポリシーでなくても)
  • 何か(おそらく何らかのセキュリティの問題)が発生した場合でも、すべてのサーバーのすべてのキーを変更したくないので、
    • 複数のサーバーに同じキーペアを使用したくない
    • キーペアを1つの目的だけに使用したい(目的は、ユーザー、サービス、タスクなど)

そのため、名前には次の情報を含める必要があります:

  • 目的の情報(ユーザー名やタスク名など)
  • サーバー名(サーバー固有のキーの場合)
  • アルゴリズム
  • それは秘密鍵ですか、それとも公開鍵ですか?
  • OpenSSHまたはPuTTY形式ですか?

可能な名前スキーム

heavyd が言及しているように、ssh-keygenツールの構文に固執することは本当に良い考えだと思います。したがって、これを使用して(公開キーの.pubを除きます。このファイル拡張子はMicrosoft Publisherによって使用され、Windowsシステムでは誤って解釈される可能性があるためです-MS Publisherの独自のアイコンもあります)、 PuTTY(.ppk)の規約と上記の条件。したがって、可能な名前スキームは次のようになります。

id_<key_algorithm>_<servername>_<purpose>.<format_information>

以下のルールで:

  • 特定のサーバー向けでない場合は、<servername>を削除します
  • 特定の目的でない場合は、<purpose>を削除します
  • 少なくとも1つの情報(<purpose>または<servername>)を名前に含める必要があります

フォーマット情報(OpenSSH/PuTTYおよびプライベート/パブリック)

PuTTYは秘密鍵に.ppkを使用し、ssh-keygenツールには公開鍵用に.pubが付属していますが、MS Publisherのために使用しません。したがって、私はPuTTys .ppkに固執し、ssh-keygens .pubとは少し異なり、両方を構築するための基礎として "conventions"を使用しますこの名前に近い他の人。したがって、この情報は "ファイル拡張子"として追加されます。

Name of OpenSSH private key:  .pk        an alternative could be .opk or   .ospk
Name of OpenSSH public key:   .pubk      an alternative could be .opubk or .ospubk
Name of PuTTY private key:    .ppk
Name of PuTTY Public Key:     .ppubk

いくつかの例:

id_rsa_foo_bar.ppk
id_dsa_foo.pk

id_rsa_server01_rsync.pk
id_rsa_server01_rsync.pubk
id_rsa_server01_rsync.ppk
id_rsa_server01_rsync.ppubk
16
I-GaLaXy-I