SSH(Secure SHell)とは、安全ではないネットワーク上のリモートサーバに対するログインやコマンド実行、ファイル転送などの通信を安全に行うためのプロトコルである。
SSH(Secure SHell)とは、安全ではないネットワーク上のリモートサーバに対するログインやコマンド実行、ファイル転送などの通信を安全に行うためのプロトコルである。Tatu Ylonen氏によって開発された。
Telnetやrsh(remote shell)、rloginといったプロトコルでもリモートサーバに対するログインやコマンド実行、ファイル転送などは可能だが、これらのプロトコルでは暗号化やサーバの認証が行われないため、盗聴や中間者攻撃を受ける可能性がある。一方でSSHは、公開鍵暗号方式を用いて暗号化を行う。このため、SSHを利用する方がセキュリティ面において安全である。また、SSHではオプションに応じて圧縮を掛けることも可能だ。
SSHプロトコルを用いるCUIのコマンドには、sshやscp(secure copy)などがある。前者はログインおよびコマンド実行、後者はファイル転送のコマンドだ。
クラウド環境のサーバを運用している場合も、管理するためにはそのサーバへアクセスすることが必要になる。安全ではないインターネットを経由して平文の通信を流すことは好ましくないため、SSHを用いることが多い。
SSHには設定ファイルがある。一般的に、以下のように設定することが好ましいとされている。
また、SSHにはポートフォワーディング機能がある。
この機能を用いることで、外部からアクセス可能なSSHサーバを利用し、外部に対して非公開であるサーバと通信を行える。外部にあるSSHサーバからイントラネット環境にアクセス可能であることが前提条件となるが、リモートのイントラネットなど外部に対して非公開な環境に接続したい状況において有用である。
ここまで見てきた通り、SSHには通信を安全に行うための仕組みが多く備わっているが、中間者攻撃を受ける可能性もある。2006年に策定されたRFC 4251では以下の3つの中間者攻撃が考えられると記述されている。
この他にも、SSH1での攻撃手法やSSH2からSSH1にダウングレードさせる攻撃手法などがある。
【2004/1/1】初版公開。
【2018/12/25】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。
Copyright © ITmedia, Inc. All Rights Reserved.