web-dev-qa-db-ja.com

新しい環境を簡単にセットアップするためにid_rsa.pubを公開していますか?

新しいマシンと環境でパスワードなしのSSHを簡単に設定できるようにするために、id_rsa.pubファイル(鍵ペアの公開部分のみ)をWeb上のどこかに公開できませんでしたか?たとえば、dotfiles GitHubリポジトリ内。

私はそれを知っています:

  • id_rsaファイル(鍵ペアの秘密の半分)は慎重に保護する必要があり、
  • 鍵ペアはパスフレーズで保護する必要があります

しかし、私の検索では、これが許可または推奨されているという明確なアドバイスは出されていません。

好奇心から、パスフレーズのない鍵ペアにも同じアドバイスが当てはまりますか?

20
DouglasDD

RSAはその公開鍵を共有できるように特別に設計されているため、公開できます。これは、RSA証明書を使用したx.509(およびSSL)の動作とかなり似ています。

ファイルを公開する前に、実際に見てください。存在する必要があるのは、キーワード「ssh-rsa」とbase64でエンコードされた鍵だけです。そのままにしておくことをお勧めします(これが現在のデフォルトであると思います)。

これは、キーにパスフレーズがあるかどうかに関係なく当てはまります。パスフレーズは秘密鍵を暗号化し、公開鍵には影響しません。

いつものように、キーが十分にエントロピーで大きくなっていることを確認してください。壊れたPRNG=によって生成された場合、それは予測可能である可能性があります。ただし、これを公開してもそれほど大きなリスクはありません。列挙されたキースペースで、正しいキースペースが得られるまで。

4096ビットのキーを使用することをお勧めします(-b 4096)です。これにより、誰かがあなたの公開鍵を秘密鍵に反転することが通常よりも難しくなります(デフォルトは2048です)。これはこれを行う際の唯一の重大なリスクであり、アルゴリズムは非実用的になるように特別に設計されているため、それほど大きなリスクではありません。

26
Falcon Momot

それはすでにです。 :)次のように、GithubプロファイルのURLの最後に「.keys」を追加するだけです。

https://github.com/tjmcewan.keys

33
tjmcewan

原則として、私はあなた自身の特定の設定をパブリックプロジェクトリポジトリに置くことはお勧めしません(リポジトリがeveryoneであり、設定があなただけ、それはほんの少し失礼です)、セキュリティへの影響は最小限です。

唯一の妥当な攻撃の方法は、何らかの方法でその公開鍵を使用してidentify悪意のあるコンテキストであなたを攻撃することです。それが何であるかは私を超えていますが、公開鍵は秘密鍵を一意に識別しますが、その起源についてのヒントはありません。

おそらく適用されないコーナーケースの攻撃ベクトルがありますが、 Debianが誤ってopenssl PRNGを壊す で大失敗を思い出す場合、影響を受けるシステムで生成されたsshキーは簡単に予測可能であり、公開鍵で識別されます。 thatの場合、公開鍵を公開すると問題が発生する可能性があります。より適切には、何かにそのキーを使用すると、問題が発生する可能性があります。

5
tylerl

はい、SSH公開キーを公開できます。 DNSで SSHFPレコード を使用してサーバーのフィンガープリントを公開できます!たとえば、サーバーのSSHキーを更新または変更する必要がある場合、これは非常に便利です。

1
jldugger