SSH接続とは?仕組みやSSHサーバーの設定、認証方法をわかりやすく解説
SSHとは「Secure Shell」を省略したキーワードで、ネットワークを介して他のコンピュータへとログインするために利用される仕組みです。一般的なインターネットなどのネットワークとは違い、SSHは安全で保護された通信を実現することを重視しています。
また、SSH接続を利用することで、他のコンピュータと「安全なファイルのやりとり」や「大量のデータ転送」を実現しやすくなります。保護されているだけではなく、大量のデータ転送にも利用できるのです。
今回は、ネットワークを理解する際に重要となる、SSH接続の仕組みや認証方法、具体的な利用例を解説します。
SSH接続に対応しているレンタルサーバーでおすすめは、コアサーバーです。
コアサーバーは、SSHを簡単に導入可能でスペックとコストパフォーマンスに優れたレンタルサーバーです。
コアサーバーでのSSH設定方法もわかりやすく紹介しています。ぜひご覧ください。
SSH接続とは
SSH接続は「Secure Shell接続」であり、セキュリティを重視し、他のコンピュータへ接続する際に利用されます。
近年は、リモートで他のコンピュータを操作することが多々あるため、このようなセキュリティ技術が重要です。
SSHを例えとして、皆さんが持つ家の鍵を使って室内へと入るようなことを考えてみましょう。このとき、コンピュータやサーバーは家あるいは部屋であり、SSHは「安全な鍵」の役割を果たしています。事前にSSHという鍵を持っていることによって、決められた人だけが家に入れるようになるわけです。
このようなSSH接続が存在することで、ITの世界では下記のことを安心して処理できるようになりました。
- インターネットなどの公共のネットワークを介しても、安全にサーバーへと接続
- ファイルの転送
- コマンドの実行
SSHを用いた通信は暗号化されているため、他の人がその内容を知ることはできません。上記の例を踏まえると、室内での会話は他の人に盗聴されることがないのです。つまり、SSHを採用すればより安全な空間で情報をやり取りできます。
なお、SSH接続を成立させるためには、クライアントとサーバーそれぞれの設定が求められます。
まず、サーバーはリモート側のマシンにインストールされるもので、SSH接続を受け付ける役割を持つものです。事前に設定されていなければ、SSH接続を開始することすらできません。
また、クライアントはサーバーに接続するために、専用のソフトウェアなどをインストールしておきます。
SSH接続の仕組み
SSH接続は、不正アクセスからアカウント情報や転送されるデータを保護するために、公開鍵認証やパスワード認証を用いて接続が保護されます。最初にこれらの違いをまとめると以下のとおりです。
項目 | 公開鍵認証方式 | パスワード認証方式 |
---|---|---|
認証方法 | 事前に生成した「公開鍵」「秘密鍵」の組み合わせ | IDとパスワードの組み合わせ |
安全性 | 高い | 低くなりがち |
導入作業 | やや専門的なスキルが必要 | 容易 |
設定変更 | やや手間がかかる | 容易 |
おすすめ度合い | 基本的にはこちらを採用すべき | 簡易な認証であれば差し支えなし |
公開鍵認証方式
公開鍵暗号化方式は、事前に関連付けられた2つの「公開鍵」と「秘密鍵」を利用した認証方式です。公開鍵は誰にでも公開できるものであり、サーバー側で保存されています。それに対して、秘密鍵は許可されたクライアント側だけに保存されていて、自分だけで管理すべきものです。自分だけが持っていることで、公開鍵認証方式は「事前に約束した人からの通信である」ということを証明できます。
認証時は、最初にユーザが公開鍵をサーバーへと送信し、ログインしたい旨を伝えます。その後、サーバーは提供された公開鍵を利用してランダムなメッセージを暗号化し、それをクライアントへと送信するのです。クライアントは、秘密鍵を使ってそのメッセージを復号しサーバーへと返送します。サーバーが正しく復号されたメッセージを受け取った場合に、認証が成功するという仕組みです。
公開鍵認証方式を利用するためには、事前にサーバーとクライアントへ必要なファイルの設置が必要です。準備に手間がかかりますが、それだけセキュリティが高く安全な通信を実現できます。
パスワード認証方式
パスワード認証方式は、サーバーに設定された「ユーザ」「パスワード」を利用した認証方式です。公開鍵認証方式とは異なり、事前に鍵を作成する必要はなく、ログイン用のユーザおよびパスワードさえ用意していれば接続できます。
認証時は、クライアントがサーバーへとアクセスし、ユーザとパスワードの情報を伝えます。サーバーは受け取った組み合わせを評価して、認証情報に相違がなければ接続できる仕組みです。一般的なコンピュータへログインする流れと、概ね同じだと理解してください。
パスワード認証方式は手軽に利用できますが、ユーザとパスワードの組み合わせが流出すると不正アクセスされる可能性があります。また、ユーザに対しパスワードを総当りで試す「ブルートフォース攻撃」を受ける可能性があり、その点でもセキュリティがやや劣る方式です。
パスワード認証方式は公開鍵認証方式にセキュリティ面で劣りますが、それでも最低限のセキュリティは担保できます。
SSH通信を利用するメリット
SSH通信を採用することで、下記のようなメリットがあります。
- 安全な通信を行える
- 高速な通信を行える
- サーバー上でのファイル編集が可能
ここからは、それぞれについて詳しく紹介します。
安全な通信を行える
SSHは「Secure Shell」の頭文字であることからもわかるように、セキュリティが高く安全な通信を実現できます。実は一般的な通信は、皆さんが考えているほど安全ではなく、第三者に読み取られる可能性があるものです。しかし、SSHを利用することで、外部に情報が流出するなどセキュリティの問題は概ね解決できます。
例えば、暗号化されていないセッションでファイルをコピーすると、悪意のある第三者に読み取られてしまうかもしれません。クライアントとサーバー間の通信を読み取ることで、内容が把握できてしまいます。
しかし、SSHで暗号化されたファイルであれば、第三者に内容を読み取られることはありません。転送内容が暗号化されていると、その内容は意味不明な文字列であるため、仮に通信を傍受したとしても、詳細を理解することは不可能です。
高速な通信を行える
適切な設定と運用によって、高速な通信を実現できます。一般的に、セキュリティを重視した通信は、暗号化の過程で低速になりがちです。しかし、SSHならばこの問題を解決しやすくなっています。
例えば、SSH通信に利用する暗号方式を工夫することで、通信の高速化が可能です。暗号化のアルゴリズムは、採用するものによって処理時間が大きく異なります。セキュリティを下げすぎない範囲で、処理時間の短いアルゴリズムを採用すれば、通信全体を高速化できるのです。
ただ、大前提として、SSHは速度の遅い通信プロトコルではありません。標準の暗号化アルゴリズムで使用しても、実用面では何ら問題はありません。必要に応じてさらなる高速化はできますが、特に意識せず利用しても良いでしょう。
サーバー上でのファイル編集が可能
SSHでサーバーへとアクセスする場合、サーバー上でのファイル編集が可能です。例えば、UNIXのサーバーへとSSHで接続し、viコマンドでファイルを開いたり編集したりできます。ファイルの送受信のみならず、編集もできる点にメリットのあるプロトコルなのです。
もし、SSHではなくFTPを利用してファイルを送受信していると、このプロトコルだけではファイルの編集ができません。必要に応じてファイルをクライアント側へダウンロードし、編集してから、改めてFTPでファイルを転送します。つまり、ファイルを送受信する手間が生じますが、SSHならこれは生じません。
SSHサーバーの設定方法
SSHサーバーを構築する場合、事前に設定作業が必要です。設定方法は公開鍵認証方式とパスワード認証方式で異なるため、それぞれについて解説します。
公開鍵認証方式での設定方法
1.公開鍵と秘密鍵の作成
公開鍵暗号方式の設定にあたっては、最初に公開鍵と秘密鍵を生成する必要があります。生成の方法はいくつかありますが、Mac OSで生成コマンドを実行したり、専用のアプリを利用したりする方法が一般的です。鍵の内容を自分で考えることはほぼ不可能であるため、ツールを利用して生成しましょう。
2.生成した鍵をSSHサーバーとクライアントへ配置
鍵を生成したのち、公開鍵はSSHサーバーへ、秘密鍵はSSHクライアントへ配置する必要があります。使用しているサーバーやクライアントによって配置方法が異なるため確認が必要です。設定ドキュメントなどの指示に従って、生成したファイルを設置するようにしましょう。なお、秘密鍵が流出するとセキュリティ対策が無駄になるため、適切に管理することが重要です。基本的には、それぞれを配置するだけで設定は完了します。
弊社のコアサーバーV2プランを利用している場合は、コントロールパネルから鍵の生成やダウンロードが可能です。簡単な操作で準備が完了するため、お手持ちのパソコンなど、SSHクライアントへ秘密鍵を配置するだけで利用を開始できます。
パスワード認証方式での設定方法
1.サーバーOSでのユーザーとパスワード設定
パスワード認証方式の設定では、事前にアクセスに利用するユーザの作成が必要です。サーバーへログインするユーザーとなるため、サーバーのOS上にアカウントを作成し、パスワードを設定します。セキュリティを高めるために、SSHでの利用を想定した専用のユーザーアカウントを作成すると良いでしょう。
2.ユーザーとパスワードで接続
クライアント側では特に設定はなく、インストールしておいたSSHクライアントを利用してサーバーへとアクセスするだけです。アクセスした際に、ユーザーとパスワードについて尋ねられるため、事前に作成しておいたアカウントの情報を入力します。
これだけではセキュリティ対策に懸念が残ってしまうのも事実です。そのため、弊社のXREA・バリューサーバー・コアサーバーV1プランでは、パスワード認証方式に加えて接続元IP制限を実装しています。自由な接続元からアクセスできないようにすることで、より安全性を高めているのです。
コアサーバーV2プランでSSHを使うならTera Term
上記ではSSHの基本について解説しました。続いては、コアサーバーでSSHを使うならばどのような設定が必要となるか紹介します。なお、コアサーバーV1プランはパスワード認証方式のみ、コアサーバーV2プランは公開鍵認証方式のみに対応しています。
1.コアサーバーのコントロールパネルを開き、左メニューの「ツール」をクリックします。
2.左ナビの「SSH設定」をクリックし、続いて中央カラムに表示される「キーを作成」をクリックします。
3.表示されるプロンプトの指示に沿って情報を入力します。なお「承認」のチェックボックスへチェックを入れる作業を忘れないようにしましょう。
4.「作成」をクリックし、以下のように表示されれば鍵の作成作業が完了しています。
5.続いて、秘密鍵をダウンロードするために、左メニューの「ツール」から「ファイルマネージャー」をクリックします。
6.ファイルマネージャーのディレクトリから「.ssh」を探しクリックします。
7.先程、作成した鍵が格納されているため、これをダウンロードします。
8.続いて、Tera Termを起動します。今回はクライアントを指定していますが、別のクライアントでも同じような操作でSSH接続が可能です。画面で利用中のホスト名を入力し「OK」をクリックします。
9.セキュリティの警告が表示された場合は「Continue(続行)」をクリックします。
10.サーバーの接続に関する情報を以下のとおり入力し、「OK」をクリックします。
- サーバーアカウント名の@より左側部分
- SSHキーを作成した際に入力したパスワード(パスフレーズ)
- ダウンロードした秘密鍵のファイルパス
11.「$」マークから始まるプロンプトが表示されれば、接続に成功しています。
SSH接続に関するQ&A
SSH接続に関するよくある疑問は下記の通りです。
- Open SSHとは何のこと?
- Windows OSでSSH接続を行う方法は?
- Mca OSでSSH接続を行う方法は?
- SSHとSSLの違いは?
ここからそれぞれの疑問について詳しく解説します。
Open SSHとは何のこと?
Open SSHは、主にUNIXコンピューターで利用される、SSHの実装方法です。オープンソースで公開されているため、誰でも自由に利用したりカスタマイズしたりすることが可能です。基本的には、公開されているアプリケーションを、そのまま導入して利用します。
SSHを利用する際は、操作を受け付ける側のSSHサーバーと操作する側のSSHクライアントが必要です。Open SSHは、1種類のアプリケーションでこれらが両方を導入できるため、利便性が高いものに分類されます。導入しておくことで、複数のコンピューターをそれぞれサーバーとして利用したりクライアントとして利用したりすることが可能です。サーバー専門やクライアント専門になってしまうことを防げます。
なお、SSHには互換性のないバージョン1とバージョン2があり、Open SSHはこれら両方を利用できます。基本的には、バージョン2を利用するはずですが、特定の要件がある場合は、バージョン1も利用可能です。
Windows OSでSSH接続を行う方法は?
現在のWindowsOSは、標準でOpen SSHが組み込まれる仕様となっているため、簡単な準備でSSHを利用できます。以前は、個別にSSHクライアントのインストールが必要でしたが、現在はその手間がなくなっています。基本的には、WindowsOS以外で利用するものと同様ですが、部分的にWindows向けの修正があるため注意しなければなりません。
まず、WindowsでSSHクライアントを起動する場合、コマンドプロンプトとパワーシェルの選択肢があります。どちらから起動しても、実行されるexeファイルは同じであるため、使い慣れているものを利用しましょう。なお、WindowsTerminalに「ssh.exe」を登録しておき、こちらから実行する選択肢もあります。コマンドプロンプトの場合、例えばこのように表示されます。
また、実行する際はホームディレクトリーが、ユーザープロファイルになることを意識しましょう。UNIX環境では、やり取りしたファイルをホームディレクトリ(~)配下の「~/.ssh/」に保存しますが、WindowsOSではユーザープロファイルに保存します。設定を変更していない場合は、ユーザープロファイルは「C:\Users\(ユーザー名)」です。厳密に確認したい場合には、以下のコマンドを実行しておきましょう。
今回であれば「C:\Users\bucch」というファイルパスをホームディレクトリとして、ssh.exeの実行でやり取りするファイルを格納する仕組みです。
Mac OSでSSH接続を行う方法は?
Macでは、特別なソフトウェアのインストールなどはせず、付属のターミナルを利用してSSH接続できます。上記、Windowsでの利用と同様に、ソフトウェアのセットアップは特に必要ありません。ただ、Windowsは事前に「鍵ファイル」を配置しておくのに対して、Macでは接続時にファイルの場所を指定しなければなりません。
上記のとおり「/Users/」に続く部分でファイルの場所を指定します。画像は部分的に加工してあります。
SSHとSSLの違いは?
SSHと間違えられやすいキーワードにSSLが挙げられます。似ている部分はありますが、異なる概念であるため違いを押えなければなりません。まず、簡単に比較すると以下のとおりです。
SSH | SSL | |
---|---|---|
用途 | サーバーへの安全な接続 | 1.Webサイトとの安全な通信 2.安全なファイル転送(FTPS) |
主な利用者 | サーバー管理者 | 1.Webサイトを利用する人の多く 2.ファイル転送を必要とする利用者やシステム |
認証方式 | 公開鍵・パスワード | 証明書 |
まず、SSLは主にインターネットを利用する際、サーバーとWebブラウザ間の通信を、暗号化してやり取りするプロトコルです。現在は、インターネットで非常に多くの情報をやり取りするため、安全なやり取りを実現するために用いられています。これを利用することで、クレジットカードの情報などセキュリティが重要なものでも、安全にやり取りできるようになりました。「サーバー証明書」と呼ばれる、Webサイトの所有者などを示す技術を利用して実現されます。
また、SSLは「FTPS」(File Transfer Protocol over SSL/TLS)と呼ばれる、ファイル転送の仕組みにも利用されます。元々、「FTP」と呼ばれるファイル転送の仕組みがあり、これをSSLで暗号化することで安全にやり取りできるようにしたものです。なお、似たキーワードとして「SFTP」と呼ばれるものがあり、これはSSHを利用して暗号化しています。
さて、SSHとSSLの大きな違いを解説すると「サーバーへの通信」か「インターネット(Webサイト)への通信」か、という部分が重要です。SSHは意図したリモートのサーバーなどへ接続しますが、SSLはインターネットの特定されていないサーバーへアクセスします。接続の対象と用途に違いがあると理解すれば良いでしょう。
また、これらはセキュリティを高める方法が異なっています。SSHは解説した通り、公開鍵認証方式かパスワード認証方式ですが、SSLはサーバー証明書です。SSHの場合、パスワードを用いて認証することができますが、SSLの場合これは不可能です。
まとめ:SSH接続の仕組みを理解して安全な通信を行いましょう
SSH接続はサーバーとクライアントを安全に接続するためのプロトコルです。
公開鍵認証方式とパスワード認証方式が採用されていて、通信を暗号化しつつやり取りできるようになっています。
従来の通信では、情報が流出するリスクがありましたが、SSH接続であればほぼあり得ないと表現して良いでしょう。
コアサーバーでもSSHを簡単に導入可能であり、皆さんのパソコンからでも接続が可能です。
より高いセキュリティを施し、安全にサーバーを運用するためにも、ぜひSSHをご利用ください。
ドメインが実質0円(年間最大3,882円お得)になるサーバーセット割特典を展開中です。
最新のキャンペーンはこちらから
※ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。
SAPベーシスからAWSなどインフラを好みつつ、ITコンサルを担当しています。会計システムや生産システムの法規制対応など、ニッチながらも企業を支える分野が好きです。