Secure Shell
ssh (Secure_Shell, セキュアシェル) は、認証を含む通信を安全にするためのプロトコルのこと、もしくは、ssh コマンドのことを指します。リモートでログインをして、コマンドを実行したり、ファイルを転送するといったことが実現できます。また、sshコマンドのポートフォワーディング機能を使うことで、「通信が暗号化されないサービス」の通信を暗号化できます。認証は、パスワード認証、公開鍵認証、ワンタイムパスワードなどが利用できます。デフォルトでは、TCPの22番ポートを利用します。sshポートフォワーディングを利用して、非暗号通信のプログラムの通信経路を暗号化するといった使い方もできます。
読み方
- Secure Shell
- せきゅあしぇる
- ssh
- えすえすえいち
目次
概要
ssh は、 telnet や rsh, rlogin といったリモートホストを操作するためのコマンド群を安全にするための代替をして考えれました。
telnet や ftp などは、通信が平文で行われるため、ネットワークに平文で認証に用いるパスワードが流れています。 ネットワークを覗き見されることにより、認証情報やデータが盗聴されます。
SSHのプロトコルバージョン
SSHとTLS/SSLは、別物です。 SSHのプロトコルバージョンとSSL/TLSのプロトコルバージョンは、別物です。
バージョン
ssh には、バージョン1とバージョン2の2つのプロトコルが存在します。バージョン1は、脆弱性が発見されているため、推奨されていません。
SSHプロトコルバージョン2(SSH v2)は、SSHプロトコルバージョン1(SSH v1)の欠点を補うために開発されました。
SSHのポート番号
SSHでは、TCPの22番ポートを利用します。
22番ポートは、たびたび、外部からスキャンされて、ログイン試行を繰り返されることがあるため、デフォルトの22番以外のポートを利用する人もいます。
暗号方式
ssh は、公開鍵認証を用いて、共通鍵暗号の共通鍵を暗号化して、鍵交換を行います。通信自体は、高速な共通鍵暗号を用います。
認証の方式
SSHは、ホスト認証とユーザ認証から成り立っています。
sshサーバ(sshd)の設定に依存しますが、以下の認証が使用できます。
また、Pluggable Authentication Modules(PAM)を使用することで、上記以外の認証を追加できます。たとえば、二要素認証としてよく利用されるワンタイムパスワード(OTP)を追加することができます。
通信のフロー
SSH バージョン 2
- プロトコルバージョンの選択
- パラメータネゴシエーション
- セッション鍵交換(DH鍵共有)
- ホスト鍵認証
- ユーザ認証
- セッション確立
- セッション終了
SSH バージョン 1
- プロトコルバージョンの選択
- セッション鍵交換(サーバ鍵を使用)
- ホスト鍵認証
- ユーザ認証
- セッション確立
- セッション終了
ssh コマンド
ssh コマンドの使い方については、 sshの使い方 をご参照下さい。
ssh yourhostname.local
ソフトウェア
SSH サーバー
リモート接続したいサーバーで動作させるsshdのプログラムです。
SSH クライアント
ssh 接続に使うクライアントプログラムです。
SSH サーバー プロテクター
コマンドの置き換え
非ssh系コマンド | ssh系コマンド |
---|---|
telnet/rsh/rlogin | ssh |
rcp | scp |
ftp | scp/sftp |
Secure Shell
関連項目
- 関連コマンド
- 公開鍵認証
- パスワード
- パスフレーズ
- パスワードクラック
- セキュリティ診断ツール
- Secure Shellクライアント
- ファイアーウォール
- テクニック
- SSL-VPN
- Transport Layer Security (SSL/TLS)
- tcpdump
ツイート