プロが教える店舗&オフィスのセキュリティ対策術

OpenSSHのサーバー設定ファイルsshd_config内のHostKey行はサーバー内の秘密鍵のパスを指定するようですが、「秘密鍵はクライアントに置くもの」と理解すれば、「サーバー内の秘密鍵を置くとはどういうこと?」と疑問に思います。
HostKey行には何を指定して、どんな役割があるのでしょうか?

質問者からの補足コメント

  • うーん・・・

    「クライアントから送られてくる秘密鍵情報がHostKey行のファイルに保存される」ということでしょうか?
    識者のご意見をお待ちします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/05/02 10:05
  • うーん・・・

    そうなのかもしれません。いまいち、確信できません。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/05/02 11:49
  • どう思う?

    trka様、ありがとうございます。
    「自分自身の秘密鍵は自分以外の誰にも渡さない」というのは、「どこにおいてもよいが、自分以外の誰にも知られないこと」という意味でしょうね。そして、「sshd_config内のHostKey設定とは無関係」ですね。
    「サーバー自身の秘密鍵」は何に使われるのでしょうか。「使われないから全行注釈化しておく」ということでよいのでしょうか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/05/08 18:42
  • うーん・・・

    trka様、ありがとうございます。
    「sshd_config内のHostKey行を有効にすると、そにかかれたディレクトリに置かれたサーバーの秘密鍵がクライアントからの接続時に利用され、より安全度が高まる」ということですね。
    今までそのように思っていなかったので、自分なりに調べたいと思います。

    No.4の回答に寄せられた補足コメントです。 補足日時:2023/05/09 22:26

A 回答 (4件)

No3です。


sshのマニュアル、或いは手引書を参照すると「秘密鍵/公開鍵を組み合わせて高度に暗号化されたデータを...」などと書いてあるのが普通だと思います。
インターネット(WAN)を通じて通信する場合などでは十分なセキュリティを得られるように秘密鍵/公開鍵を利用した本来の設定を行うべきでしょう。又は家庭で使用するパーソナルコンピュータであっても、グローバルIPアドレスを持ち、webサーバとしている...などの環境では十分なセキュリティを確保すべきでしょう。その場合には手順書どおり『sshd_config内のHostKey行』は有効にすべきです。

但し、ごく小規模な事業所/家庭クラスの通信(LAN)では特にsshのセキュリティに気をつける必要もないと思われます(人それぞれと思いますが)。
私自身の環境もこの部類に入りますので、私は秘密鍵/公開鍵共に使用していません(サーバ/クライアントとも)。
元々rloginやtelnetを使用していたものが「最近デフォルトでインストールされなくなったなあ...」などの状況となり、なし崩し的にsshを使用するに至りました。
この回答への補足あり
    • good
    • 0

ご質問者様は秘密鍵に対して誤解されているものと思われます。

「秘密鍵はクライアントに置くもの」ではなくて「自分自身の秘密鍵は自分以外の誰にも渡さない」が正解と思われます。
そして、ご質問にある『sshd_config内のHostKey行』はサーバー自身の秘密鍵を示し、クライアントの秘密鍵ではありません。

https://qiita.com/leomaro7/items/b0f0babc3b68dd8 …

によれば...『OpenSSHをインストールすると、ローカルホスト用(つまりサーバー)の公開鍵と秘密鍵が作成されます。』
とあります。HostKey行で指定する秘密鍵はsshd_configファイルと同じ位置にあります。

サーバーマシンの『sshd_config内のHostKey行』は、私の環境では(複数あるHostKey行の)全行注釈化されているのですが、必要な行だけ有効化するだけで良いのではないでしょうか。
この回答への補足あり
    • good
    • 0

https://qiita.com/leomaro7/items/b0f0babc3b68dd8 …

初めてのホストに接続する際に!クライアント側でフィンガープリントとして確認が出たと思いますが…。
それの算出の為の公開鍵の対になる秘密鍵ですかね。

DNS汚染等でホスト名が同じなのに接続先IPか変わった。などのときに、『以前接続したホストと違う』と判別できます。
公開鍵だけだと他のホストからコピーしてきた公開鍵を送りつける。という手がありますから、ホスト側の秘密鍵で何らか暗号化して、公開鍵と一緒にやり取りしているのでしょう。
正常に複合できるのはホストの秘密鍵で暗号化した場合だけですし。
この回答への補足あり
    • good
    • 1

>>サーバー内の秘密鍵を置くとはどういうこと?



私もよくわかりませんけど、もしサーバー側からデータを送る場合に、暗号化するなら、サーバー側に秘密キーが必要になるのではないでしょうか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!