重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

現在VineLinux3.2を使ってサーバの勉強をしている、ド素人です。

SSHのユーザ認証が、

(1)サーバ側で乱数生成→クライアントの公開鍵で暗号化→

(2)クライアントに送信→

(3)クライアントが受信→

(4)秘密鍵で複合化→サーバに送信→

(5)サーバはクライアントから送られた乱数を確認して認証

という流れで、なるほど、これでユーザを認証できるってのは分かるのですが、


ホスト認証がよくわかりません、

SSHでサーバにアクセスすると、

サーバの公開鍵が ~/.ssh/knows_hosts に登録されますが、

この公開鍵を使って、ユーザ認証と同じ方法で接続先ホストを認証してるのでしょうか?

そうだとしたら、

2度目のアクセスからはホストを認証するのに、
この~/.ssh/known_hostsの
公開鍵を使った方法が有効だというのは分かりますが、

一番最初のアクセスではこの公開鍵を使ってもホストの認証は出来ないと思うのですが(接続先から送られてくる公開鍵を使うだけなので)

どういう仕組みになってるのでしょうか?


よろしくおねがいします。

A 回答 (1件)

>一番最初のアクセスではこの公開鍵を使ってもホストの認証は出来ないと思うのですが



全くその通りです。
ホストの公開鍵は、「一番最初のアクセス」**より前に**、
別の形で受け取っておかなければ、安全ではありません。

例えば、当該ホストの管理者からCD-Rに焼いて手渡して貰うとか、
管理者の電子署名の付いたメールに添付ファイルで付けて貰うとか
SSL で(別の電子認証局によって認証された)www サイトに掲載して
あるのをダウンロードするとか。

その「管理者」が本当に当該サイトの管理者か、その www サイトが
配っているのが本当に当該ホストの鍵か、ということ自体が信頼で
きないなら、それを信じるために更に別の方法が必要。
    • good
    • 0
この回答へのお礼

やっぱり、最初の時点での公開鍵では危険な点もあるんですね。
本当は安全なのに、それが私には理解できないだけなのかな
っと凹んでいました。色々な対処法まで親切にありがとうございます。
とても勉強になりました。

お礼日時:2006/11/07 21:36

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