UNIXの秘密/公開SSHキーはどこにありますか?


16

RSAと公開/秘密鍵システムがどのように機能するかを理解し始めており、秘密と公開のSSH鍵がどこに保存されているのか疑問に思っていました。ホームディレクトリに移動して.sshディレクトリ(cd .ssh)を参照すると、「known_hosts」ファイルのみが表示されます。このファイルには、既知のさまざまなリモートSSHサーバーの公開キーが含まれていると思います。

これらのキーはどこにありますか?ところでそれらを作成したことすら覚えていませんが、以前にssh接続を確立したことがあるので、それらはどこかにあるに違いありません。

MAC OS 10.6でOpenSSH_5.2p1を使用しています。

ありがとう!

回答:


14

~/.ssh/id_rsaそして~/id_rsa.pub通常。ただし、sshがペアを作成して保存する必要があるということにはなりません。sshは基本的にSSLプロトコルを使用し、Diffie / Hellmanキー交換アルゴリズムまたはいくつかのバリアントを使用してセッションキーを確立します。つまり、接続を設定するハンドシェイクはセッションキーを生成し、セッションが完了すると破棄します。

アルゴリズムをよく読んでください。かなり簡単です。接続を介してキーを送信することなく、接続の両端で既知のキーを確立します。


これは、SSHキーを生成するように依頼されなかった場合、RSAが使用されたことがないことを意味しますか?つまり、セッションキーを共有するために非対称アルゴリズムが使用されたが、接続用の一時的な公開/秘密キーがコンピューターに保存されていなかったということです。

そうです。実際、暗号化は対称的です-非対称アルゴリズムはストリーミングにはあまり適していません。Diffie-Hellmanは、対称暗号化のセッションキーを生成するために使用されます。代わりに公開キーと秘密キーのペアを使用する場合、それらは他のハンドシェイクで使用され、対称アルゴリズムのセッションキーを作成します。
チャーリーマーティン

@mieli:いいえ。そもそも作成されていません。publickey多くの認証方法のうちの1つにすぎません。passwordまたはを使用して単にログインした場合keyboard-interactive、パスワード自体が送信されました。(注:ユーザーキー、ホストキー、およびセッションキーを混同しないでください。)
user1686

@grawityはここでほぼ同意していますが、少し注意してください。Diffie-Hellman鍵交換はRSAおよびその他の非対称暗号化アルゴリズムに関連しており、交換の両側に最終的な合意の「半分」があるため、本質的に非対称です。彼らはやるキーの2つの部分を持って、そして最終的にキーとそれを構築するための正確なプロセスは、セッションの終了時に破棄されます。ただし、RSAペアのパブリック部分とプライベート部分ではありません。
チャーリーマーティン

4

個人の公開および非公開sshキーは通常、次の場所に保存されます。

$HOME/.ssh/id_dsa     (private key)
$HOME/.ssh/id_dsa.pub (public key)

または、DSAキーではなくRSAキーを作成id_rsaしたid_rsa.pub場合(OpenSSHは両方のフォームをサポートします)。

ただし、以前にssh接続を確立したという事実は、sshキーがあることを意味するものではありません。sshコマンドが個人キーを見つけられない場合、リモートシステムのパスワードの入力を求められます。これは、キーを使用するよりも安全性が低くなります。

通常、パスフレーズを使用してssh秘密鍵を作成する必要があります。パスフレーズなしで作成すると、秘密鍵のコピーを取得した誰かがあなたになりすますことができます。 ssh-agent使用するたびにパスフレーズを再入力することなく、パスフレーズでキーを使用できます。


2

あなたが鍵ペアを作成しなかった場合、あなたはおそらくいない持っているものを。

SSH2トラフィックは、DH、ECDHアルゴリズム、またはGSSAPIキー交換を使用して確立された対称セッションキーで暗号化されます。ホストキーもユーザーキーもデータの暗号化には使用されません。その唯一の目的は認証です。

SSHはいくつかの認証方法をサポートしていることを覚えておいてください:に加えてpublickey、ほとんどすべてのサーバーはシンプルpasswordを受け入れkeyboard-interactiveます。

言い換えれば、「以前にssh接続を確立したことがあるので、どこかに接続する必要がある」というのは正しくありません。接続を確立するためにユーザーキーペアは必要ありません


あなたがいる場合やった鍵ペアを作成、それはおそらくになります~/.ssh/id_*例えば、 - id_rsaデフォルトのRSA鍵ペアのために、id_ecdsaECDSAのため、id_dsaDSAのため。これらのファイルが含まれていますが、両方のキーペアのプライベートとパブリックの部分を、公共の部分は、通常は自動的に別々に抽出されるid_*.pub(便宜上ファイルid_rsa.pubid_rsaなど)。

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