15869の参考について
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
15869の参考について
msg# 1
fujii0401
投稿数: 23
そもそもサーバとクライアントがそれぞれ相手の認証つまり、
ホスト認証とユーザ認証を公開鍵暗号方式で行う際に
サーバはユーザ承認を実施し、ユーザはサーバの公開鍵を使用した暗号化したデータをサーバに送る一方で
サーバは自身の秘密鍵を使用して復号を行いデータを照合しサーバは相手が適切なユーザかどうかを判断しているということでよろしいでしょうか?
なのでサーバは相手が適切なユーザかどうかを判断するための公開鍵を相手ユーザに渡す必要があるという認識ですがよろしいでしょうか?
サーバ認証についてなのですが、ユーザは相手サーバが適切なサーバかどうかを判断するためにサーバ認証を行い、こちらはユーザ側が作成した公開鍵をサーバの~/.ssh/authorized_keysに格納することで実現が可能とういう認識でした。
いずれにしても公開鍵を相手サーバに渡し、秘密鍵を渡すことはないという認識でしたが
こちらの正解の解説を確認する限りではサーバ側が作成した秘密鍵をクライアント側に渡しています。秘密鍵を渡すことなんてありうるのでしょうか?秘密鍵を渡すのはリスクが大きい気がします。
sshでサーバ認証を行い、適切なサーバかどうかを判断するにはユーザの公開鍵を使用して暗号化したデータをユーザ側がユーザの秘密鍵で復号化してサーバの認証を行うのではダメなのでしょうか?
以上です。
ホスト認証とユーザ認証を公開鍵暗号方式で行う際に
サーバはユーザ承認を実施し、ユーザはサーバの公開鍵を使用した暗号化したデータをサーバに送る一方で
サーバは自身の秘密鍵を使用して復号を行いデータを照合しサーバは相手が適切なユーザかどうかを判断しているということでよろしいでしょうか?
なのでサーバは相手が適切なユーザかどうかを判断するための公開鍵を相手ユーザに渡す必要があるという認識ですがよろしいでしょうか?
サーバ認証についてなのですが、ユーザは相手サーバが適切なサーバかどうかを判断するためにサーバ認証を行い、こちらはユーザ側が作成した公開鍵をサーバの~/.ssh/authorized_keysに格納することで実現が可能とういう認識でした。
いずれにしても公開鍵を相手サーバに渡し、秘密鍵を渡すことはないという認識でしたが
こちらの正解の解説を確認する限りではサーバ側が作成した秘密鍵をクライアント側に渡しています。秘密鍵を渡すことなんてありうるのでしょうか?秘密鍵を渡すのはリスクが大きい気がします。
sshでサーバ認証を行い、適切なサーバかどうかを判断するにはユーザの公開鍵を使用して暗号化したデータをユーザ側がユーザの秘密鍵で復号化してサーバの認証を行うのではダメなのでしょうか?
以上です。
Re: 15869の参考について
msg# 1.1
yokoyama68
投稿数: 28
具体的な内容が書いていないので推測して回答いたします
間違っていたらすみません
質問者の方は以下のコマンドで生成した鍵をサーバの鍵と
思われているようです
「$ ssh-keygen -t ecdsa」
これはサーバの鍵ではなく、あるユーザがLinux上でユーザの
鍵を生成しています
クライアントとあるのは自分自身のログイン元PCなどを指しています
ログイン先サーバが既知のサーバか否かを判断するために
使用するログイン先サーバの公開鍵はユーザの~/.ssh/known_hosts に登録されます
同様のことがTERATERMでは
メニュー:[設定]>[SSH鍵生成]
からできます
つまり、鍵をLinux上で作成するか、Windows上で作成するかの
違いしかありません
作成したユーザの秘密鍵は他人に見られないように厳重に保管します
公開鍵はログイン先のサーバの~/.ssh/authorized_keys へ登録します
いくつかログインのパターンを考えてみます
1.
鍵の生成:サーバA上で
ログイン元:Windows PC (Teratermコマンド)
ログイン先:サーバA
ユーザの鍵をサーバAのssh-keygenで秘密鍵・公開鍵を生成
公開鍵はサーバAのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はWindows PCへコピーし厳重に保管
※サーバA上に秘密鍵・公開鍵を残しておく必要はありません
2.
鍵の生成:Windows PC上で
ログイン元:Windows PC (Teratermコマンド)
ログイン先:サーバA
Windows PCのTeratermで秘密鍵・公開鍵を生成
公開鍵はサーバAのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はWindows PC上で厳重に保管
3.
鍵の生成:サーバA上で
ログイン元:サーバA (sshコマンド)
ログイン先:サーバB
ユーザの鍵をサーバAのssh-keygenで秘密鍵・公開鍵を生成
公開鍵はサーバBのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はサーバAで厳重に保管
※サーバA上に公開鍵を残しておく必要はありません
公開鍵認証は概念が難しく、説明が長くなりましたが
理解の一助になれば幸いです
間違っていたらすみません
質問者の方は以下のコマンドで生成した鍵をサーバの鍵と
思われているようです
「$ ssh-keygen -t ecdsa」
これはサーバの鍵ではなく、あるユーザがLinux上でユーザの
鍵を生成しています
クライアントとあるのは自分自身のログイン元PCなどを指しています
ログイン先サーバが既知のサーバか否かを判断するために
使用するログイン先サーバの公開鍵はユーザの~/.ssh/known_hosts に登録されます
同様のことがTERATERMでは
メニュー:[設定]>[SSH鍵生成]
からできます
つまり、鍵をLinux上で作成するか、Windows上で作成するかの
違いしかありません
作成したユーザの秘密鍵は他人に見られないように厳重に保管します
公開鍵はログイン先のサーバの~/.ssh/authorized_keys へ登録します
いくつかログインのパターンを考えてみます
1.
鍵の生成:サーバA上で
ログイン元:Windows PC (Teratermコマンド)
ログイン先:サーバA
ユーザの鍵をサーバAのssh-keygenで秘密鍵・公開鍵を生成
公開鍵はサーバAのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はWindows PCへコピーし厳重に保管
※サーバA上に秘密鍵・公開鍵を残しておく必要はありません
2.
鍵の生成:Windows PC上で
ログイン元:Windows PC (Teratermコマンド)
ログイン先:サーバA
Windows PCのTeratermで秘密鍵・公開鍵を生成
公開鍵はサーバAのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はWindows PC上で厳重に保管
3.
鍵の生成:サーバA上で
ログイン元:サーバA (sshコマンド)
ログイン先:サーバB
ユーザの鍵をサーバAのssh-keygenで秘密鍵・公開鍵を生成
公開鍵はサーバBのユーザの~/.ssh/authorized_keys へ登録
秘密鍵はサーバAで厳重に保管
※サーバA上に公開鍵を残しておく必要はありません
公開鍵認証は概念が難しく、説明が長くなりましたが
理解の一助になれば幸いです
Re: 15869の参考について
msg# 1.2
fujii0401
投稿数: 23
わかりやすい説明をありがとうございます。
秘密鍵を移動させることはありうることで
それは鍵を作成する主体が自分のPCなのか通信を行う先のサーバなのかで決まるというということですね
秘密鍵を移動させることはありうることで
それは鍵を作成する主体が自分のPCなのか通信を行う先のサーバなのかで決まるというということですね