公開鍵認証てなに
from 自鯖建立 2:SSH接続でのログイン方法を多少安全にする(公開鍵認証)
公開鍵認証てなに
このへん深く理解しなくても手順やれると思いますが本当に多少は理解しないとなにをやってるかわからないので知らねーという場合参考元など見るだけ見ておこう
公開鍵と秘密鍵を使っての電子署名による認証のやり方らしい。
✅️参考
読んでみよう(全部理解してない)
SSHの公開鍵ってなに? #初心者 - Qiita〈1〉
SSHの公開鍵認証における良くある誤解の話 #暗号 - Qiita〈2〉(再び)
SSHの公開鍵認証とは何をやっているのか?〈3〉
このコメントと同じ気持ちなんだけど結局よくわからなかった
実は8種類の鍵が使われている!?|SSH接続の流れ・仕組み
鍵は6個らしいです(Discussionより)
さらに参考
RFC4252の和訳
SSHのRFC(公式文書みたいなやつ)
詳しいことが書いてあるらしい〈2〉が読んでも特にわからない
あるということで一応貼っておく
2つの公開鍵暗号(公開鍵暗号の基礎知識) #初心者 - Qiita
公開鍵暗号について 予備知識…貼ってみただけ
端折った雑な理解
こんな感じか 曖昧に書いています
公開鍵と秘密鍵
公開鍵は他人に見られてもいい、秘密鍵は漏洩させてはいけない という違いで分けてるだけ。
だからといってSSH接続の一連の過程で2個の鍵だけ使ってるというわけではない。
鍵の種類
参考:〈1〉:sshの公開鍵
以下の他にもあるけど使う分にはあんまり関係ない?
ホスト鍵:ホスト(サーバー)認証に使う
両方ともサーバーで生成される。
公開鍵
ナントカ.pubというファイル
秘密鍵
ナントカというファイル
認証鍵:ユーザー認証に使う
ログインしたい人が自分で作って設置する。
公開鍵
SSHにおいて公開鍵と言われてるやつは大体これらしい
ログイン先の~/.ssh/authorized_keysに書き込んで設置。
秘密鍵
ログインしたい人が自分のPCに持っておく鍵。
SSHでの公開鍵認証では少なくともホスト認証とユーザー認証をおこなっている
参考:〈3〉:ホスト認証
ホスト認証
クライアント(自分)がログインしようとしてるそのサーバーが本物かどうかチェックする。
サーバーは、ホスト鍵(公開鍵)とホスト鍵(秘密鍵)による署名などをクライアントに送る。
クライアント側でチェックして確かめる。
セッションID
クライアントとサーバーのやりとりの最中、同一セッションであることをチェックするのに使う
ユーザー認証
クライアントがそのサーバーにログインする資格があるかチェックする。
クライアントはクライアントが持っている認証鍵(秘密鍵)の署名をサーバーへ送信する。
サーバーはその署名を、クライアントがサーバーに設置した認証鍵(公開鍵) (~/.ssh/authorized_keys) と検証する。
正直よくわからんのでこのへんにしておきます…鍵交換←?なので書いてません まあSSH接続の操作するだけなら多分関係ないし…
SSHクライアントでの実際の操作と照らし合わせて何がいつおこなわれているのかイマイチ自信なし(セッションID??公開鍵をクライアントから署名と一緒に送信??)
ごた御託は終わり
戻って作業していきます。
→自鯖建立 2:SSH接続でのログイン方法を多少安全にする(公開鍵認証)