これらの細かい内容は「裏でこういうことをしているんだ」という認識で良いと思います。SSH接続をするには2つのペアの「鍵」を作る必要があります。PC側とサーバ側があったとして、2つの鍵を作るのはPC側です。秘密鍵は絶対に自分のPC以外には移してはいけません。※これは覚えておいてください。移して良いのは公開鍵のみです。さっきから「鍵」と読んでいるものは、ただのファイルです。ファイル中身をみてみると、公開鍵も秘密鍵も意味不明な文字列が並んでいるだけです。公開鍵で何ができるのか公開鍵で出来るのは、暗号化です。サーバと通信するときの「やりとりの内容」を暗号化してくれます。一度、公開鍵で暗号化したものについては、「秘密鍵」でしか復号化(元に戻す)できません。秘密鍵を誰かにあげたりしたらダメなんです。この公開鍵は接続したいサーバに送ります。これで、自分のPC側には「秘密鍵」、サーバ側には「公開鍵」がある状態になります。乱数と公開鍵で暗号作成サーバが側には今「公開鍵」がある状態ですね。サーバ側に送られている「公開鍵」を使って認証を行います。サーバ側では公開鍵+乱数を使って暗号を作成します。この乱数はサーバ側で勝手に作成されます。公開鍵+乱数で作成された暗号は、接続要求をしてきたPC側に送ります。この時サーバ側では乱数をハッシュ化して置いておきます。←後に認証で使います。秘密鍵での複合さて、サーバ側からPC側へ「暗号」が送られてきました。この暗号はPC側の秘密鍵でしか複合できません。PC側には秘密鍵があるので、その秘密鍵を使って複合を行います。複合されると「サーバ側で作成された乱数」が取り出せます。乱数からハッシュ値を生成して、サーバ側に「ハッシュ値」を送ってあげます。サーバ側では「既に生成したハッシュ値」と「PC側から送付されたハッシュ値」がある状態です。この2つを比較して、一致していれば「接続要求をしているPCは正しい接続元」となります。これで、見事「SSH接続」が完了します。まとめSSHは裏で結構大変なことをしているのが分かったかと思います。分かっておけば何ら問題はありません。実際に自分でSSH接続の設定をしてみると、理解しやすくなるかと思います。このSSHはAWSやローカル開発環境などでは、ほぼ必須の知識なのでぜひ覚えて、設定方法などもマスターできるようになりましょう。別の記事でSSHの接続設定についても解説しますので、お楽しみに。