サーバーOSはこんな現代でもやはりコマンドラインが主流で、ここ最近いろいろなGUIが配布されていますが、それでも尚どうしてだかコマンドを使います。たぶん伝統ととか安定性というのもあるんでしょう。かつてはこの端末からのリモート操作にはtelnetが主流でしたがセキュリティーにうるさい現在にはtelnetを使用するのはLAN内などの限られた場所のみで殆どの人がSSHを使うようになりました。SSH(Secure Shell)は、その名の通りセキュアーなシェルでありまして、リモート操作といえども通常の端末操作となんらかわりがありません。つまり、SSHの設定さえしておけば後はセキュアーなシェルが遠隔地から自由に使えるというわけです。
しかし、通常のシェル、またはかつてのtelnetとなんらかわりのない操作が可能ですが、仕組みはやや複雑です。設定時に混乱しないようにある程度仕組みを覚えておくと後々とても楽になると思います。
SSHサーバーの中身といいますか、流れといいますか...そういうものが何を読んでも結局よくわからないという方々がどれぐらいおられるかわかりませんが私自身は最近まで本当によくわかりませんでした。UbuntuではOpenSSHというパッケージが主に使われていて一般的なので非常に設定しやすいばかりかセキュリティーもかなりいいです。にも関わらずなかなか設定が面倒くさいです。
SSHでのこの面倒くささは主に「認証」に関する暗号化と復号化に関する設定です。しかし、大雑把にいってしまえば、要するに、
この公開鍵方式といわれる方法の何がすばらしいのかというと、上記の共通鍵を毎度毎度違うものにするということです。同じデータの通信でも共通鍵が接続ごとに違うのでまるでちがった暗号になるので、これまた復号化が大変だ...というわけです。
いずれにしろ公開鍵方式といわれるセッションでは、共通鍵の暗号化と復号化に関して「公開鍵と秘密鍵」が使用されるのであって、その後のデータの通信には共通鍵のみで暗号化と復号化を行います。
共通鍵の受け渡しの最初のセッションでは、
さてここでは、この公開鍵認証を使ったSSH通信の設定方法を解説します。UbuntuサーバーにOpenSSHのインストール、Macクライアントの設定を中心に説明しますが、Windows OSのクライアントからでも勿論可能です。LAN内からのアクセス、またはインターネットからのアクセスも同様に公開鍵認証でアクセスします。
しかし、通常のシェル、またはかつてのtelnetとなんらかわりのない操作が可能ですが、仕組みはやや複雑です。設定時に混乱しないようにある程度仕組みを覚えておくと後々とても楽になると思います。
共通鍵と公開鍵
SSHでのこの面倒くささは主に「認証」に関する暗号化と復号化に関する設定です。しかし、大雑把にいってしまえば、要するに、
- ユーザーやサーバーを特定し認証する時のみの暗号化と復号化の方法。
- データやコマンドのやりとりをする際の暗号化と復号化の方法。
この公開鍵方式といわれる方法の何がすばらしいのかというと、上記の共通鍵を毎度毎度違うものにするということです。同じデータの通信でも共通鍵が接続ごとに違うのでまるでちがった暗号になるので、これまた復号化が大変だ...というわけです。
いずれにしろ公開鍵方式といわれるセッションでは、共通鍵の暗号化と復号化に関して「公開鍵と秘密鍵」が使用されるのであって、その後のデータの通信には共通鍵のみで暗号化と復号化を行います。
共通鍵の受け渡しの最初のセッションでは、
- クライアントがSSHサーバーへ接続すると(3)、
- サーバーは公開鍵で共通鍵(4)を暗号化し(5)、クライアントに送信します。
- クライアントはこの暗号化された共通鍵を受け取り(6)、これを秘密鍵で復号化します。(8)
- これでサーバーとクライアント双方に共通鍵が行き渡ります。その後通常のデータのやりとりが行われます。



