はじめに#
本番環境構築のためレンタルサーバーを使おうとしたらSSHという言葉が出てきました。あまり聞きなれない言葉だったので備忘録として残しておこうと思います。
それではよろしくお願いいたします!
SSHとは#
SSHとは、Secure Shellの略で、ネットワークを介して別のコンピュータと通信するためのプロトコルです。SSHコマンドを使うことでサーバーなどを遠隔操作することが出来ます。映画とかでよく、主人公のサポート役がパソコンをカタカタやってドアロックを解除したり、監視カメラを乗っ取ったりしてますよね。あんな感じのイメージです。Macではターミナル、Windowsではコマンドプロンプトを使って操作します。
同じようなプロトコルに、Telnetというものがあります。Telnetも、SSH同様コンピュータを遠隔操作するためのプロトコルですが、異なる点があります。それは、通信データが暗号化されているか、されていないかになります。
Telnetの場合は暗号化されていないので、パスワード情報やファイル情報がそのまま通信データとして送られますので、覗き見(盗聴とも呼ばれます。)されると情報が漏洩してしまいます。
それに対してSSHは通信データが暗号化されているのでTelnetよりも安全性が高いです。
どのようにして使うのか#
SSHは主にサーバーのセットアップ時などに使います。先ほど述べた通り、Macではターミナル、Windowsではコマンドプロンプトを使用します。基本的な書式は下記の通りです。
ssh ユーザー名@IPアドレス
〜というIPアドレスを持つサーバーに〇〇というユーザーでSSH接続します、という意味ですね。このように入力するとパスワードを求められますので、あらかじめ設定しているパスワードを入力すると認証成功です。こうすることでサーバーにログインでき、様々な操作を行うことができるようになります。
公開鍵認証#
今ご紹介したのがパスワード認証方式というものです。それとは別に、公開鍵認証というものについてもご紹介していきます。公開鍵認証方式とは、公開鍵と秘密鍵を使ってログインする方式になります。
クライアントとサーバーの関係性を想像してみてください。公開鍵認証方式では、まずクライアントが公開鍵と秘密鍵を作ります。そしてサーバー側に公開鍵を渡し、秘密鍵は自分で持っておきます。認証時には、サーバー側で公開鍵を用いて暗号化されたデータを自分のパソコン側が秘密鍵で複号化します。複号化されたデータをサーバー側に送付し、元のデータと合っていれば認証成功です。
パスワード方式だと、ユーザーが単純なパスワードを設定してしまったり、同じパスワードを使いまわしてしまったりすることがあるので、セキュリティ的にやや不安が残ります。それに対して、公開鍵認証で作られたデータは非常に複雑に作られているので、秘密鍵さえしっかり保管しておけば破られることはありません。そのため、一般的には公開鍵認証の方がより安全であると言われています。従って、SSH接続の際は公開鍵認証を使用することが望ましいです。
まとめ#
サーバーとの接続には、Telnetではなく暗号化されたSSH接続を使うこと、認証にはパスワード認証ではなく公開鍵認証を使うようにしましょう。