秘密鍵と公開鍵は、サーバー側(ssh接続される側)で作ろうがクライアント側(sshコマンドを打って接続しに行く側)で作ろうが、どっちでもいいそうな。

秘密鍵と公開鍵って、どっちをリモートホスト側(sshで接続される側)に置いて、どっちをクライアント側(sshコマンドを打って接続をお願いする側)に置くか、こんがらがりませんか?私は、google検索で、鍵ペアをリモートホスト側で作るやり方とクライアント側で作るやり方、両方見つけてしまって余計こんがらがりました。そこで先輩に、鍵はどっちで作ってどうやって鍵認証設定するのか、聞いてみた。

■基本的なやり方
多くの場合、サーバーを立てて、個人PCからそのサーバーにsshするというものが多い。この場合、以下のように定義できる。
◎サーバー→リモートホスト(sshで接続される側)
◎個人PC →クライアント(sshコマンドを打って接続しに行く側)

*鍵の作り方と鍵認証設定の仕方(概要)*
(1)個人PCで鍵ペアを作る
(2)個人PCで作った鍵ペアから、公開鍵をサーバー(リモートホスト)に持って行く
(3)サーバーに持ってきた公開鍵を設定する
(4)サーバーのsshd_configを書き換える

この逆、つまり、サーバー側(sshで接続される側)で鍵ペアを作って、各個人PCに秘密鍵を配るやり方もあるそうな。ただし、sshで接続される側で鍵ペアを作って、秘密鍵を配布するやり方は、以下の場合に取るべき方法だそう。

*sshで接続される側で鍵ペアを作って、秘密鍵を配布するやり方を取る場合*
クライアント側(ssh接続をしに行く側)がたくさんいて、各人から公開鍵を回収するのが大変な場合。例えば、ある開発環境(sshで接続される側)に大人数が鍵認証で接続する場合。こういうときは、鍵が全員分集まるのに時間がかかるので、サーバー側(sshで接続される側)で鍵ペアを人数分作っちゃって、配布しちゃうそうな。

*注意事項*
◎作成する鍵ペアは、必ずパスワードを付けておく。
◎パスワードと秘密鍵は別ルート(別々のメール等)で送る。

臨機応変にしないといけないのね。