メールの送受信や、Zoom・Google Meetによるオンライン会議など、私たちはネットワークを介したサービスを日常的に利用しています。
ネットワークを利用する上で欠かせないのが「通信の安全性」です。
もし、重要な情報が盗聴や不正アクセスなどによって外部に流出してしまうと、大きな問題になりますよね。
そこで使われるのが、通信を暗号化する「SSH」と呼ばれる仕組みです。
今回は、ネットワークで安全な通信を行うための仕組みであるSSHについて解説します。
Windows VPSならWinserver!
★丁寧な電話サポートで安心★
\ 2週間無料でお試しできます! /
Windows VPSを使ってみる
目次
SSHとは
SSH(Secure Shell)とは、コンピューターで通信のために使われるプロトコルの一つで、通信の暗号化に関わるものです。
SSHが必要とされる背景など、SSHの概要について解説します。
SSHが必要になった背景とは
一般的にコンピュータで通信を行う際に使われる通信サービスには、従来からTelnetやFTPなどがあります。
2020.11.12
FTPとは。ファイル転送の仕組みや、セキュリティ上の課題を解説
みなさんは「FTP」を使ったことがありますか?FTPとは、サーバーなどとファイルを送受信するための仕組みです。FTPのファイ...
しかし、これらには「通信が暗号化されていない」という問題点がありました。
通信が暗号化されていないということは、以下のようなリスクがあるということです。
- IDやパスワード、その他の重要な情報が盗聴される可能性がある
- 情報流出が引き起こされる可能性がある
- 他人によるなりすまし発生の可能性がある
など
こういった情報セキュリティ上の問題を解決するために開発されたのが、通信を暗号化して内容を読み取ることができないようにするSSHの仕組みです。
SSHとはどのようなもの?
SSHとは、「通信内容を暗号化する」「鍵認証など高度な認証方法を使う」などのセキュアな方法を使うことで、通信を安全に行えるようにした仕組みのことです。
SSHは暗号化通信などで利用されています。
認証の仕組みには、「パスワード」「認証鍵」などの方法を使用することができます。
SSHでもっとも重要な点は、「通信を暗号化することで第三者に内容を読み取られない」ようにしたことです。
昨今では、多くのWebサービスやリモートサービスがセキュリティの確保のためにSSHを採用するようになっています。
SSHとSSLの違い
SSHと同じようにセキュアな通信を実現する仕組みとしてよく取り上げられるものとしてSSL(Secure Socket Layer)があります。
SSLとSSHの違いはどのようなところにあるのでしょうか。
SSH | SSL | |
---|---|---|
目的 | ・接続先がなりすましでないかの証明 | ・接続先がなりすましでないかの証明 ・クライアントの認証 ・通信内容の盗聴の防止 |
ユーザー認証 | 公開鍵による認証 | 証明書による認証 |
特徴 | 遠隔でコンピュータの操作を行う際に通信データを暗号化するもの 暗号化の仕組みにはSSLを使用 | インターネット上で端末とサーバー間での通信を暗号化する仕組み |
SSHは、サーバーなどにネットワーク経由で遠隔で操作をする場合に使う仕組みです。
一方で、SSLは、単に通信全般を行う際の暗号化に使われる仕組みです。
このように、SSLとSSHは「通信を暗号化して安全に送受信を行う」という点は共通していますが、SSLが暗号化のプロトコルであるのに対してSSHは実際に操作する仕組みであるといった違いがあります。
SSLやSSLサーバー証明書についてはこちらの記事で詳しく解説しています。
2020.04.23
SSLサーバー証明書とは?暗号化通信に必須。具体的に解説します。
Webサイトなどで「SSL対応」とか「SSLによる安全な通信」といったキーワードを目にすることがあると思います。セキュリティの高い暗...
2022.07.14
SSL証明書の有効期限が切れるとどうなるのか。期限切れを防ぐには
インターネット上で、いろいろなWebサイトを閲覧していて「証明書が有効期限切れになっています」といった旨のエラーメッセージが表示されたことは...
SSHによる通信の仕組み
SSHは、暗号化通信の仕組みとして代表的なものです。
SSHでセキュアな通信を行うための具体的な仕組みについて解説します。
SSHでセキュアな通信を行うためのポイントとなるのが「公開鍵によるユーザー認証」です。
この認証は、以下のような流れで行われます。
- 端末側で秘密鍵と公開鍵のペアを作成する
- 接続する相手のサーバーに公開鍵を設置しておく
- 端末側で秘密鍵を使って署名(Signature)を作成してサーバーに設置する
- 通信の際には作成した鍵のペアを照合することで認証を行う
このように、SSHによる通信を行う場合は、公開鍵による認証が必要です。
SSHを使ってサーバーに接続する方法
具体的にSSHを使うには、どうすれば良いのでしょうか?
まず、SSHを使う際には、接続を受け入れるサーバーと、接続を行うクライアントの2つに分かれます。
ここでは、クライアントから「サーバーを操作する方法」と、「サーバーからファイルを送受信する方法」について解説します。
<サーバー操作:Telnet → SSH>
コンソールでサーバー操作をする場合、暗号化通信を活用するのであれば、Telnetでなく、SSHコンソールを使います。
TeratermPro with SSH(Windows)やTerminal(Mac)を使います。
<ファイル送受信:FTP → SCP, SFTP>
暗号化した安全なファイルの送受信はSFTPやSCPを使います。
これには、WinSCP(Windows)や、Cyberduck(Mac)といったツールが使えます。
たとえば、WinSCPを使ってサーバーに接続する場合は、以下のように行います。
①WinSCPを起動する
②「セッション」-「新しいセッション」を開く
→接続する「ホスト名」「ユーザ名」「パスワード」を入れて保存し、ログインを押す
③接続すると、以下の画面が表示される
クライアントからの通信を行う際には、SSHを使うことで暗号化された安全なデータ送受信を行うことができます。
いずれにしろ、暗号化による通信はツールを使うことで簡単に利用することができます。
SSH接続については、こちらの記事でも詳しく解説しています。
SSH接続とは。リモートコンピューターへの接続方法をわかりやすく解説
SSHサーバーの構築方法
SSHを利用する際には、サーバー側がSSH接続に対応している必要があります。
具体的には、SSHサーバー(サービス)がサーバー上で起動している必要があります。
SSHサーバーの種類
SSHサーバーの機能を実現するためには、SSHサーバー機能を持つソフトウェアを導入する必要があります。
SSHサーバーの機能を持つソフトウェアのうち、無償のものと有償のものをご紹介します。
<無償>
これらは無償で利用できるSSHサーバーソフトウェアです。
- OpenSSH
- Apache MINA/SSHD
<有償>
以下は、有償で利用できるSSHサーバーソフトウェアです。
- Tectia SSH Server
OpenSSHには十分な機能が備わっているため、SSHサーバーを構築する場合に選ばれることが多いです。
なお、OpenSSHは、Windows、Mac、Linuxなどさまざまな環境で利用することができるようになっています。
SSHサーバーを構築する方法とは
SSHサーバーはどのように構築すればよいのでしょうか?
以下では、OpenSSHを例に解説します。
①OpenSSHの取得
OSごとに、以下の方法でOpenSSHを取得します。
<Linux>
各ディストリビューションのパッケージをyumやapt等で取得します。
<Windows>
元々組み込まれているので有効化します。
<Mac>
元々組み込まれているので有効化します。
②OpenSSHの設定
③OpenSSHの有効化と起動
サービスが自動で起動するように設定します。
これらの作業を行うことで、OpenSSHを利用して他の端末のSSHクライアントから接続できるようになります。
SSHサーバー構築時の注意点
SSHサーバーを構築する際にはいくつか注意点があります。
- rootやAdministratorなど特権アカウントでは接続できないようにする
特権アカウントで悪意ある第三者に接続されると乗っ取りなどにつながる恐れがあるため
- Anonymous接続やゲスト接続は許可しないようにしておく
第三者に勝手に接続されて操作等されてしまう可能性があるため
- パスワード接続でなく、認証鍵ファイルによる接続が望ましい
パスワード認証の場合は、パスワードが漏洩すると第三者に勝手に利用され、情報漏洩などにつながる恐れがあるため
このように、SSHサーバーを構築する際には、セキュリティ上の安全性を確保するために、いくつか解説したような押さえておくべきポイントがあります。
その他の注意点
なお、SSHは構築以外にも注意点があります。それは以下のような点です。
- ファイアウォールの設定
ファイアウォールでSSH接続を許可する。
可能であれば、接続元の制限も行えると、よりセキュリティレベルが向上する。
最近のOSでは、OS自体にこうしたファイアウォールなどの機能が備わっているケースも多くあります。
設定によってはSSH接続を許可しないケースもあるので、注意しましょう。
まとめ
年々巧妙化かつ悪質化するサイバー犯罪。
システムの脆弱性やバグなどを悪用した不正アクセスや盗聴などが急増する中、セキュリティレベルの向上は必須となっています。
従来からサーバー管理などでよく使われるTelnetや、ファイル送受信を行うためのFTPは、通信が暗号化されないために情報の漏洩などのリスクがあります。
これを解決するのが、今回解説したSSHです。
SSHは、公開鍵を使ったユーザー認証を用い、通信内容を暗号化することができるセキュアな通信プロトコルです。
暗号化通信を使うSSHコンソールやSCPなどはツールで簡単に利用することができます。
セキュリティレベルの高いSSH、今回の記事を参考にして、ぜひ活用しましょう。
↓「サーバーを利用したいが、知識や技術に不安がある…」そんな方は、Winserverの「サーバー安心パック」をご活用ください。
サーバー安心パック紹介資料
「サーバー安心パック」は、Winserverが提供するマネージドサービスです。
サーバーについての技術や知識に不安がある方もご安心ください。
Winserverの専門スタッフが、初期構築や運用業務などを代行いたします。
本資料では、サービス内容、特徴、料金プランをご紹介しています。
サーバー安心パック紹介資料
「サーバー安心パック」は、Winserverが提供するマネージドサービスです。
サーバーについての技術や知識に不安がある方もご安心ください。
Winserverの専門スタッフが、初期構築や運用業務などを代行いたします。
本資料では、サービス内容、特徴、料金プランをご紹介しています。