SSHとは
SSHとは「Security Shell」の略称で別のコンピューターに遠隔でログインしたり、特定のサーバに入ったりするための通信プロトコルです。
SSHは、認証部分も含め全ての通信が暗号化されるので、インターネットを利用して別の場所のPCやサーバーを遠隔操作する際に、その内容の盗聴・改ざんを防ぐことが出来ます。
SSHが普及する前は、TELNETという接続方式が使われていましたが、暗号化されない為、盗聴・改ざんの危険性がありました。従って、現在はSSHでの接続が一般的となっています。
SSHの利用目的
SFTPを使ってファイル転送する
当社で制作したウェブサイトをお客様自身で更新する際、更新したHTMLファイルや画像ファイルをアップロードする場合、またウェブサイトデータをバックアップしていただく際などにはFTPソフトを利用します。この時、FTPでは暗号化されない為、SFTPの利用を推奨しています。SFTPは、SSHの通信プロトコルを使ったFTPソフトですので、SSHが利用できればSFTPが利用できます。(絶対ではありません)
SSHでサーバーへ接続して、コマンド操作する
お客様自身が操作することではございませんが、当社がウェブサイトを制作する際に、SSHでサーバーへ接続してファイル操作やサーバーの設定などを行う必要がある場合がございます。
その為、ご利用するサーバーの条件としてSSH接続が利用できるサーバーを指定することがあります。
具体的な利用事例の一部を以下に紹介します。
サーバー移転のデータ転送にSSHを利用する
サーバーを移転する際に、ローカルPCへ一旦落として新しいサーバーへアップロードするのではなく、旧サーバーと新サーバーの間で接続してデータを移転する方が、安全で効率的です。
サーバーデータを圧縮してダウンロードする
サーバーのデータをローカルPCへバックアップする際、FTPですと一つ一つのファイルに転送要求をする為、非効率です。また、サーバーへ一時的に負荷を掛けたり、一部ファイルのダウンロードが失敗するなどのリスクがあります。従ってサーバー上でZIPファイルなどの圧縮データとして複数データを一つの圧縮ファイルに格納し、その圧縮データをローカルPCへダウンロードするのに利用します。
cronの設定
予め設定したスケジュールで指定の操作を行う為の機能であるcronを設定します。例えば、定期的に別のサーバーへデータを送信したり、一定期間を過ぎたファイルを削除するなどを定期的に自動で処理したい場合に利用します。また、予め処理を定義したシェルスクリプトの実行をスケジュール化します。
rsyncの利用
rsync(アールシンク)は他のサーバーとのファイルやディレクトリの同期を行う機能です。別のサーバーのとディレクトリ同期をする為に利用することがあります。標準ではTCPの873番ポートで接続を受け付けますが、SSHを介して利用できます。
SSHが利用できるサーバー
root権限があるサーバー
専用サーバー、VPS、クラウド、AWSなどのroot権限のあるサーバーは、SSHで接続してサーバーを設定する事が前提の為、初期状態でSSHが起動されています。
当社で初期設定をする場合
当社でroot権限付サーバーの初期設定を依頼された場合は、特に希望が無い限り次の設定となっています。
root権限への昇格について
rootへの直接ログインは無効。一般ユーザーへログインした後root権限に昇格できます。root権限へ昇格できるユーザーは、予め指定したユーザのみ昇格を許可しています。(sudoコマンドを利用できるユーザーも限定)
SSHログインの接続元制限について
SSHのログインは、ファイヤウォールで接続元を限定しています。
接続元の制限とは、予め許可されたIPアドレスからの接続のみを許可する設定で、許可されていないネットワークからの接続はファイヤウォールの段階で遮断します。
その為、動的IPアドレスでは無く、固定IPアドレスが必要な為、お客様の環境に固定IPアドレスの導入をお願いしています。
どうしても固定IPアドレスを導入できない場合は、そのリスクをご理解いただいた上でご利用プロバイダのネットワーク範囲全てを許可する設定を行います。
共用レンタルサーバーの場合
共用レンタルサーバーでも、SSH接続できるサーバーは増えていますが、SSH接続サービス出来ないサーバーサービスもございます。各共用レンタルサーバーサービスのSSH接続の対応状況について、調べてみました。以下ご覧ください。