問題5155について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2021-10-29 20:16
yyamami  新米   投稿数: 2
ゴリゴリの初学者です。

『リモートホストからサーバにSSH接続できるように、サーバ上で以下のコマンドを使用して公開鍵認証用の鍵ペアを作成した。SSH接続するホスト(クライアント)に安全に持ち運ぶべきファイルはどれか。』

確かに秘密鍵をクライアント側に持っていけばクライアント認証ができるのはわかります。
しかしホスト認証を行うためにホスト、クライアントで共通の公開鍵を所有している必要があるため、公開鍵も持っていく必要があるんじゃないかなぁと思ってしまいます。

この場合はホスト認証は行わないという認識で良いのでしょうか。
それともホスト認証で使用する認証鍵はクライアント側で作成する必要があるということなのでしょうか。
どなたか教えていただけるとありがたいです。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-10-30 12:00
arashi1977  長老 居住地: 広島  投稿数: 1715
ここがポイントですね。
引用:
しかしホスト認証を行うためにホスト、クライアントで共通の公開鍵を所有している必要があるため、公開鍵も持っていく必要があるんじゃないかなぁと思ってしまいます。
ここには2点あります。
1. ここでいう「共通の公開鍵」は、「ユーザーの秘密鍵のペアである公開鍵」を指しているのか?
5155の選択肢から「id_dsa.pub」も正解だという話をしたいのであれば、それは間違いです。ユーザーの公開鍵と「ホスト認証に使う公開鍵」は異なるものです。これは4297とかみてもらうとわかると思います。
「ユーザーの公開鍵」という意図であるのなら、「サーバ側にユーザーの公開鍵、ローカルにユーザーの秘密鍵」というペアで利用するものなので、公開鍵を持ってくる必要はありません。

2. ホスト認証の公開鍵の持ち運び
ホスト認証用の公開鍵って、接続時に相手(サーバ)から提示されるんですよ。
$ ssh test@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ED25519 key fingerprint is SHA256:GlEN9bDLzy4PzxLwmv0vi5rUu41Gc025Nud8FcnM3/k.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
で、この時に「この公開鍵を受け取っていいのかどうか」の判断をするためには、上記出力例のfingerprint文字列(SHA256で始まる行)を使います。
これは鍵指紋と呼ばれるもので、鍵の本体から生成できる情報です。もし公開鍵が異なっていたり、改ざんされていたりしたら指紋の出力も変わります。そのため、鍵全体を持ち運ぶのではなく「このホストの公開鍵の指紋はこれ」という情報だけもらえれば、受け入れ前の出力と比較して「接続先ホストに間違いはないか」の確認ができるのです。
持ち運ぶ情報を減らし、伝達する情報量も減らす、って感じですね。

で、どうでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-10-30 16:14
yyamami  新米   投稿数: 2
ホスト認証で使う公開鍵と「ssh-keygen」コマンドで作成される公開鍵は別物なんですね。
持ち運びのタイミングと合わせて理解を深めることができました。
丁寧に教えていただきありがとうございます。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.