はじめに
サーバの保守・運用・構築には、リモートのサーバにログインして操作する仕組みが必要です。LinuxではSSH、Windowsではリモートデスクトップといった仕組みになります。
また、ルータやスイッチといったネットワーク機器も同様で、場合によってはSSHが採用されていることがあります。
SSHとは
SSHとは「Secure Shell」を省略したキーワードで、ネットワークを介して他のコンピューターへとログインするために利用される仕組みです。
SSHは以下の特徴があります。
- 通常SSHは22番ポートを使用する
- 通信を暗号化することで、通信データの盗聴対策をしてくれている
- ユーザが適正であるかを認証してから、SSH接続先(以下SSHサーバ)とSSH接続元(以下SSHクライアント)を接続する
- パスワード認証方式または公開鍵認証方式の2パターンからログイン方法が選べる
- ファイル転送も可能
SSHを利用するには
SSHサーバとSSHクライアントの役割にそった準備が必要になります。
SSHサーバで必要な準備は以下です。
- SSHサーバのソフトウェアのインストール
- SSHサーバソフトウェアの設定
- ファイアウォールを利用している場合はSSHサーバの通信設定
- 公開鍵認証方式を選んだ場合は、公開鍵の配置
SSHクライアントで必要な準備は以下です。
- SSH接続するためのソフトウェアの準備
Windowsに搭載されているSSHソフトウェア
良く使われるソフトウェアとしてTeratermやPuTTYがあります。 - 認証方式に合わせてパスワードまたは、SSHサーバに配置した公開鍵とペアになる秘密鍵
SSHのユーザ認証
パスワード認証方式と公開鍵認証方式の2種類の認証方式がSSHにはあることを記述しました。 公開鍵と秘密鍵についてもう少し説明を追加します。 公開鍵と秘密鍵をペアで作成し、クライアントに秘密鍵を配置し、サーバに公開鍵を配置します。 SSHサーバは、電子署名技術によって公開鍵とペアになった秘密鍵をSSHクライアントが持っていることを確認します。 これにより、SSHクライアントが適正なユーザであることを認証します。 この2つのペア鍵によってSSH通信のユーザが適正なユーザであることを証明してSSH通信を開始することを公開鍵認証方式といいます。
SSHと共に語られるTelnetについて
TelnetはSSHが主流になる前まで利用されていた接続技術です。ネットワークを介して他のコンピューターへとログインするために、利用される仕組みという点ではSSHと同様ですがTelnetは通信が暗号化されいません。
以前は、業務用ネットワークと管理用ネットワークを完全分離されたオンプレ環境等で利用されているのを見ることがありましたが、通信の暗号化が出来ないことに起因して、ここ数年利用されているのをみることがない技術です。
おわりに
SSHはクラウド化が進んだ昨今では保守・運用・構築のどれをとっても一度は触れることになる技術だと私は思っております。
AWSにはAWS Systems Manager Session ManagerでTCPポート転送を利用してSSH接続もできます。
SessionManagerを利用して操作は可能ですが、そもそもSSHを利用していた環境に慣れているユーザが多い場合、SSHを選択することが依然として多いです。
どの作業に従事するにしても知っておいた方が良い知識なので、今回はご紹介いたしました。