Ubuntu Serverに SSH接続したい。
タイトルは「Ubuntu Server」としていますが、それに限定されません。
Linux OS全般に対してクライアントから SSH接続する方法になります。
Ubuntu Serverをインストールしたまでは良いとして「じゃ遠隔地のサーバールームに置いてあるブツのキーボートと画面をどうやって使えば良いのさ?」って話になりますよね。
[サーバーは普通はすぐに行けない所にあるの図]
こういう時にはネットワーク通信を使って、遠隔地(会社とか)からログインして使います。
でもって、会社の PCは Windowsなんだよねって人が殆どでしょう。
Windowsから Ubuntu Serverにどうやってネットワークアクセスするんだってのがここでの話です。
大昔は telnet(テルネット)ってのを使って通信したのですが、コイツの通信は入力した文字がそのまま電文としてネットワークに乗ってしまうので、途中でパケット解析をされるとパスワード等の重要データが簡単に漏れてしまうという欠点があります。
そこで電文を暗号化して通信する SSHが使われるようになりました。
ネットワーク通信のデータを暗号でやりとりするには、クライアントとサーバーの両方で同じ暗号化/復号化ロジックと同じ鍵を持っている必要があります。
[これで初めて暗号通信できるの図]
これを「共通鍵暗号」って言いますね。
SSHでは最終的な共通鍵暗号での通信を行うまでの過程で「公開鍵暗号」というのを使います。
ですのでクライアントで使う様々な SSHツールで「公開鍵暗号」を使うための仕組みが用意されています。
ここに出てくる新しい要素(鍵)は 2つ。
双子のようにセットで作ります。
公開鍵 | 暗号化する時に使う。 これがバレてもデータは復号できないから安心(ということになっている)。 |
秘密鍵 | 上の公開鍵とセットで持っていると暗号化したデータを復号化できる。 こちらはバレたら OUT! |
SSH通信をするために、ツール類で行う具体的な作業は以下となります。
1.ユーザーがキーペアを作る
最初に個々のユーザーが公開鍵と秘密鍵のセットを作ります。
これはユーザーが 1回だけやっておけば良い作業で、相手のサーバーが何台あっても、通信を何回やっても使い回しできます。
(使い回しはあまり良くないが…)
[公開鍵と秘密鍵を作るの図]
2.公開鍵をサーバーに配置する
公開鍵をサーバーに置きます。
Linuxサーバーを相手にする場合はほぼ OpenSSH のはずです。
OpenSSHの公開鍵の置き場所は、個々のユーザーのホームディレクトリの下にある [.ssh]ディレクトリの [authorized_keys]ファイルになります。
公開鍵のデータを [authorized_keys]ファイルに追記することで配置したことになります。
サーバーへの持って行き方はそれぞれの自由でやれば良いのですけど、公開鍵だからといって誰の目にも触れる状態にするのは良くありませんね。
基本的に隠しておくべきものです。
==========
説明はここまで。
次回「Ubuntu Serverへの SSH接続とファイルコピー 2」では具体的なツールとして、Tera Termにチャレンジします。
ただどのツールを使うにしても、ここに書いたことを応用して使うことになりますね。