SSHとは、コンピューターやネットワーク機器などを操作するために必要なプロトコル(インターネットの通信規格)のことです。インターネット上でやり取りされる情報を暗号化できるため、サーバ接続時の安全性が確保されています。
在宅勤務やテレワークといった働き方が増えて行く中で、企業はオンラインで安全に遠隔操作をして仕事ができる環境作りが急務となっています。
SSHは、そんな新時代に活躍する技術のひとつです。
この記事では、初心者の方にもわかりやすくSSHの情報や認証方法などを解説します。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
SSHとは?
SSHとは、「Security Shell」の略称です。別のコンピューターに遠隔でログインしたり、特定のサーバに入ったりするためのプロトコルまたはソフトウェアです。SSHを使うことで、認証部分を含めてすべての通信が暗号化されるようになり、第三者に簡単には解読できないようになります。
SSHが普及する以前は、「telnet」という接続方法が使われていました。従来のtelnetの場合、やり取りするデータは暗号化されないため、比較的簡単に情報を盗み見できてしまいセキュリティに問題があるとして、SSHを使用する企業が増えています。
また、SSHはiOSやAndroidにも実装されているプロトコルです。そのため、SSHの利用環境が整っていれば、スマートフォンやタブレット端末からも簡単にリモート接続が可能となっているため、ビジネスでも利用されています。
ちなみに、SSHには、「Super Science Highschool(スーパーサイエンスハイスクール)」という意味もありますが、この記事では関係がないため割愛します。
SSHとSSLの違い
SSHとSSLは名前が似ており、どちらも通信を暗号化するという部分は一緒ではあるものの、異なる用途や目的を持っています。
名称 | 用途・使用ケース |
---|---|
SSH 正式名称:Secure Shell |
遠隔でコンピューター機器を操作する際に通信データを暗号化するプロトコル |
SSL 正式名称:Secure Socket Layer |
インターネット上での端末とサーバ間における通信データを暗号化し送受信させるプロトコル |
SSHは、主に遠隔でコンピューター機器を操作する際に、通信データを暗号化させるプロトコルです。一方、SSLは、インターネット上での端末とサーバ間における通信データを暗号化して送受信させるプロトコルとなります。
また、ユーザーの認証方法にも違いがあります。SSHの場合は、ユーザー認証には「公開鍵による認証」を行いますが、一方のSSLは「証明書による認証」というよう異なる点があるのです。前述した通り、通信を暗号化する部分は一緒ですが、用途や目的が異なるので、混同しないように注意してください。
SSHの認証方式の種類
SSHの主要な認証方式は、公開鍵認証方式です。それ以外にはパスワード認証もありますので、それぞれ解説します。
●公開鍵認証方式
公開鍵認証方式は、「公開鍵」と「秘密鍵」を照合して認証する方法です。公開鍵認証方式を使うことで、「鍵を持っている人(パソコン)からのみ、ログインを許可」という方式に変更できます。ちなみに、「鍵」と称しているものの、実際はもちろん鍵ではありません。単純にシステム照合のことではあるのですが、便宜上このような呼び名になっています。
名称 | 特徴 |
---|---|
秘密鍵 | 電子署名のデータを作成できるもの |
公開鍵 | 電子署名データが正しいものか検証できるもの |
秘密鍵では「電子署名」というデータを作成できます。この秘密鍵で作成された「電子署名」を、サーバ側へ配布し登録しておきます。その後、ログインしようとするコンピューターの秘密鍵を、サーバ側で登録されている公開鍵と合致するものか検証し、合格すれば認証成功となってリモート接続が許可されるようになるのです。
この、公開鍵認証方法であれば、秘密鍵が第三者に流出しない限り安全です。リモート接続を行う場合には、公開鍵認証をおすすめします。
●パスワード認証方式
パスワード認証方式は、その名の通り「パスワードでサーバにアクセスする方法」です。
サーバ側にパスワードを設定しておき、アクセスした際に一致するパスワードをクライアント端末から入力するとログインできるようになります。
パスワード認証方法は、一般的にも馴染み深い方法です。しかし、公開鍵認証に比べるとセキュリティ面での不安がある認証方式となり、企業でSSHを利用する際には、おすすめできません。
というのも、管理者が単純なパスワードに設定してしまった場合、第三者から簡単にロックを解除されて不正ログインが発生してしまう可能性があります。また、複数のWebサイトで同じパスワードを使いまわしていた場合にも、別のところから情報が盗まれてセキュリティを突破されてしまう可能性があるのです。
パスワード認証方式は簡単な方法ではあるものの、より強固なセキュリティでリモート接続をするには公開鍵認証方法を活用しましょう。
SSHを使うメリット
通信データを暗号化させ、安全にインターネットを使えるようになるSSHのメリットについて紹介します。
●セキュア通信が可能
SSHを利用することで、セキュア通信が可能となります。セキュア通信とは、一言で表すと「安全な通信」のことです。
SSHの最大のメリットである暗号化された通信により、大切な情報を第三者に見られることなく、安全に情報を取り扱えるようになります。また、認証方法には公開鍵暗号方式が使われるため、なりすましによるアクセスを防ぐことが可能です。そのため、IDやパスワード、個人情報などを守り、さらに企業の機密情報の流出リスクなどを防ぐことに役立ちます。
特に、在宅勤務やテレワークの需要が伸びている昨今では、安全に遠隔操作し、安全に業務に取り組めるような環境を作ることが重要です。
●サーバ上でファイルの編集が可能
SSHを利用している通信では、そのサーバ上でファイルを直接編集することが可能です。
SSHが普及する前に使われていたTelnetの場合は、編集したいファイルがあれば、一度ローカルディスクにダウンロードしなければなりませんでした。そして、ダウンロードしたファイルの編集が完了したら、再度元のフォルダにアップロードをするという手間がかかっていたのです。
その点、SSHを利用すれば、サーバ上で直接ファイルを編集できるようになります。すると、今まで行っていたファイルをダウンロードしたり、アップロードしたりする手間を省くことが可能です。これにより、効率的な業務を実現できるようになります。
また、編集以外にも複数ファイルをまとめてダウンロードする場合に、サーバ上で圧縮して、そのままファイルを一括ダウンロードすることも可能です。
SSHに潜む落とし穴
情報セキュリティ対策への意識は常に高まり、今後もその傾向は続きます。しかし一方で、通信の暗号化には課題も残ります。
その課題とは、以下のようなリスクが挙げられます。
●公開鍵認証の鍵の使いまわしによるリスク
公開鍵認証では、1つの鍵を複数のユーザーが使いまわすことで、情報漏洩のリスクが高まります。なぜなら、鍵が1つ漏洩しただけで、すべてのサーバが被害に遭ってしまうためです。どのサーバにも簡単にアクセスできて情報漏洩の危険が高まるため、個々に鍵を作成してください。より強固なアクセス環境を作るのであれば、同じユーザーであっても接続先のサーバ毎に鍵のペアを作成することでセキュリティを高められます。
●ID/パスワードの使いまわしのリスク
情報が格納されているシステム内のサーバを、共通ID/パスワードにすると、情報漏洩のリスクが高くなります。その理由は、ID/パスワードが1つ漏洩するだけで、すべてのサーバが被害に遭ってしまうためです。どのサーバにも簡単にアクセスできてしまうので、情報漏洩の危険性が高まるので、サーバ別やユーザー別に異なるパスワードを利用するようにしてください。
●安全性の低いパスワードを使用するリスク
安全性の低いパスワードを使用していると、SSHプルートフォースアタック(IDやパスワードを総当たりすること)されやすく、攻撃を受けやすくなります。また、簡単にセキュリティを破られてしまう危険性があるため、安全性の低いパスワードは辞めましょう。ずさんなパスワード管理による、情報漏洩事件も多数発生しているため、必ず安全性の高いパスワード管理を心がけてください。
●自動スクリプト内のパスワード埋め込みのリスク
自動転送スクリプトに直接パスワードが書き込まれていると、用意にパスワードの入手が可能になってしまいます。これは、スクリプトファイルが、平文でサーバ上に格納されているためです。パスワードをスクリプトに埋め込むこと自体を辞めるべきですが、これを防ぐにはパスワードファイルの中身の文字列を暗号化させましょう。
●鍵の管理ができていないことのリスク
公開鍵認証でSSHを運用している中で、適切に鍵の管理ができていないと情報漏洩のリスクが高まります。管理者は、どのサーバに鍵が配置されているのかを把握し、不要な鍵や不明な鍵が存在していないか管理運用することが求められるのです。これができていないと、不正アクセスに気づくことができず、情報漏洩につながる可能性があります。鍵の管理を適切に行うには、管理台帳を作成して管理することをおすすめします。
秘密鍵と公開鍵の関連性を紐づけて、管理台帳にユーザー鍵の管理を行いましょう。また、不正・不明な鍵がないかを確認するには、定期的にサーバにログインして確認を行い、記録するようにしてください。
運用コストは高まりますが、情報漏洩におけるリスクを下げる方が健全です。もし、コスト削減を行いたい場合には、自動で鍵情報を収集してくれる製品もあります。必要な場合には、そうした製品の導入を検討してみるのも良いでしょう。
おすすめのSSHクライアント
SSH接続を受け付けるためのサーバソフトウェアをご紹介します。
●OpenSSH
「OpenSSH」は、1999年に初版がリリースされて以来SSHのデファクト・スタンダード・ソフトウェアとして長い歴史を持ち、世界で最も利用されています。OpenSSHは、サーバとクライアントの機能を両方持っていて、Unix/Linux OSにデフォルトでインストールされています。そのため、Unix/Linux OSを使っているユーザーであれば、まずOpenSSHを使うのをおすすめします。
●Apache MINA/SSHD
「Apache MINA」は、開発言語のJavaでSSHサーバを構築することができるライブラリです。本来の役割は、Javaでネットワークアプリケーションを構築できるフレームワークライブラリです。しかし、サブプロジェクトとしてSSHDプロジェクトというものがあり、SSHサーバ構築用のライブラリも開発されて提供されています。
●PuTTY
「PuTTY」は、Simon Tatham氏が中心となり開発したフリーのSSHクライアントソフトウェアです。対応OSは、Windowsだけではなく、MacやUNIXなどにも対応しています。また、PuTTYは複数起動して、端末に同時に接続できるという特徴もあります。
●Window Subsystem for Linux
「Window Subsystem for Linux」は、Windows10ストアでLinuxディストリビューションを、ダウンロードして使えるSSHのことです。Windows上に、Linux環境を構築することができます。X11サーバおよび、そのほかのLinux環境も同時に構築できて、Linux環境からコマンドが利用可能です。
リモートアクセスを安全にするSSHを活用しよう!
セキュリティのことを考えると、しっかりSSHを設定して万一の攻撃に備えるようにしましょう。特にサーバを自前で構築する場合には、必ずSSHを設定しておく必要があります。インターネットが普及し利用シーンが広がる中で、自社のセキュリティを守り、なおかつ作業負担を軽減できるSSHの利用を検討してみてはいかがでしょうか。
システム開発の最適な発注先をスムーズに見つける方法
システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案