【SSH】リモートログインの技術【Telnet】

【SSH】リモートログインの技術【Telnet】

SSH

SSH (Secure Shell) は、安全なリモートログインを実現するために用いられる技術です。「Shell」は OS が提供するユーザーインタフェースです。SSHでは、各エスエスエイチ種の暗号化技術や認証技術などを利用することで安全性を確保しますなお、「SSH」という表現は、文脈によって「プロトコル」を示す場合と、「実装」を示す場合があります。SSHは、大きく「鍵交換」「ホスト確認」「ユーザー認証」「通信データの暗号化」の4つのフェーズを実現するプロトコルであり、最新バージョンは Version 2 で特別な理由がない限りは Version 2を用います。SSHの実装でよく使われるものとして、OpenSSH や Putty、TeraTerm Proなどがあり、いずれの最新版もSSHプロトコル Version2 をサポートしています。

SSHでリモートログインする際の認証方法

SSHでログインを行う際の認証方法には「パスワード認証」と「公開鍵認証」の2種類があります。パスワード認証は、リモートログイン時のユーザー認証に、パスワードを利用する方法です。システムに設定されているパスワードをそのまま利用するため、SSHを使えるようにすること以外に、他に何か別の準備をする必要はありません。そのため、すぐに SSHを利用できるようになります。なお、パスワードは SSH プロトコル上で暗号化されて送信されるため、簡単にスワードが漏えいすることはありませんが、万が一でもパスワードが漏えいしてしまった場合は、誰でもログインできる状態になってしまうため、決して安全性が高い方法であるとはいえません。パスワード認証よりも安全な認証方法に「公開鍵認証」があります。公開鍵認証では事前に「秘密鍵」と「公開鍵」を用意する必要があるなど、パスワード認証と比べて手間がかかります。しかし、秘密鍵を持っている人しかログインできないため、パスワード認証よりも安全性が高いといえます。

Telnet

Telnet(Teletype network) は、SSH(p.164) が普及する前に利用されていた、旧来のリモートログインのためのプロトコルです。以前は、UNIX/Linux にリモートログインする場合によく使われていましたが、最近はより安全性の高い SSHを用いることが多いため、今ではリモートログインのために Telnet が使われることはほテルネットとんどありません。

Telnet が使われなくなった理由

Telnet が使われなくなった最大の理由は、Telnet の通信は安全性が低いからです。Telnet では通常、データを暗号化せず、平文(そのまま読める普通の文章)のまま送受信するため、パケットキャプチャなどによって、通信の内容を窃取される危険性があります。SSLなどを利用することで通信データを暗号化することも可能ですが、現在ではより便利であり、かつ安全性の高い SSHが普及しているため、わざわざ Telnet を利用するメリットがない、というのが実情です。

サーバーソフトウェアの動作確認用ツールとしての Telnet

上記のように、リモートログインでは使われなくなってしまった Telnet ですが、その存在価値がまったくなくなったわけではありません。現在では、Telnet は「サーバーソフトウェアの動作確認用ツール」として利用されています。先述したように、Telnet クライアントは、指定したホストの指定したTCP ポートに接続し、平文でデータの送受信を行うため、サーバーソフトウェアの動作確認に適しているのです。たとえば、TCP ポート 80 番で接続を待ち受けるHTTP サーバーに対して、Telnet クライアントで接続を行い、HTTP プロトコルに則ったデータをサーバーに送り込むことで、HTTP サーバーからの応答を受け取ることが可能です。 Telnet クライアントがSSLに対応しているのであれば、SSL サーバーとの通信も可能になります。

セキュリティカテゴリの最新記事