SSHで公開鍵と秘密鍵を使用する方法は?

SSHで公開鍵と秘密鍵を使用する方法は?

SSHで公開/秘密鍵認証を設定したとします。

  1. SSHサーバーには公開鍵がありますが、秘密鍵はありませんが、SSHクライアントには公開鍵と秘密鍵の両方があることは正しいですか?

  2. SSHプロトコルを介して通信するときに公開鍵と秘密鍵をどのように使用しますか?

    • SSHプロトコルを介してSSHサーバーに接続するコマンドを実行してSSHクライアントから通信を開始したときにサーバーに送信する最初のメッセージは、公開鍵または秘密鍵で暗号化されますか?

      SSHサーバーがこの初期メッセージを受信すると、公開鍵を使用して初期メッセージを復号化しますか?誰もが公開鍵を持って初期メッセージを復号化できるので奇妙に聞こえますか?

    • サーバーに接続するために送信するコマンドがサーバー上のファイルをローカルホストにscpする場合、SSHサーバーが要求したファイルを送信するときに公開鍵がファイルを暗号化するために使用されますか?

      SSHクライアントが暗号化されたファイルを受信すると、ファイルを復号化するために秘密鍵が使用されますか?

    • 公開鍵と秘密鍵は認証中にのみ使用され、認証が完了した後は使用されませんか?

      これが正しい場合、認証後にSSHサーバーとクライアント間の通信のために送信されるメッセージの一種の暗号化と受信メッセージの復号化はありますか?

ありがとうございます。

答え1

  1. SSHサーバーには公開鍵がありますが、秘密鍵はありませんが、SSHクライアントには公開鍵と秘密鍵の両方があることは正しいですか?

うん、あなたが話したら認証キー。しかもホストキー、所有権が反対の場合 - サーバーは両方とも所有し、クライアントは公開鍵のみを持ちます。

  • SSHプロトコルを介してコマンドを実行してSSHサーバーに接続してSSHクライアントから通信を開始したときにサーバーに送信する最初のメッセージは、公開鍵または秘密鍵を使用して暗号化されますか?

いいえ。初期メッセージは暗号化されません。鍵交換後の通信は、DH鍵交換の結果である共有秘密(セッション鍵)から派生した鍵を使用して暗号化されます。

SSHサーバーがこの初期メッセージを受信すると、公開鍵を使用して初期メッセージを復号化しますか?誰もが公開鍵を持って初期メッセージを復号化できるので奇妙に聞こえますか?

復号化は秘密鍵を用いて行われます(署名確認は公開鍵を用いて行われます)。

  • サーバーに接続するために送信するコマンドがサーバー上のファイルをローカルホストにscpする場合、SSHサーバーが要求したファイルを送信するときに公開鍵がファイルを暗号化するために使用されますか?

いいえ、昔のようです。ファイル(フルセッション)は「セッションキー」で暗号化されます。

SSHクライアントが暗号化されたファイルを受信すると、ファイルを復号化するために秘密鍵が使用されますか?

いいえいいえ。

  • 公開鍵と秘密鍵は認証中にのみ使用され、認証が完了した後は使用されませんか?

はい

これが正しい場合、認証後にSSHサーバーとクライアント間の通信のために送信されるメッセージの一種の暗号化と受信メッセージの復号化はありますか?

この質問が何を意味するのか分かりません。セッションは、対称パスワード(通常はAES)と上記の鍵交換によって取得された鍵を使用して暗号化されます。

関連情報