「Secure Shell」の版間の差分
(同じ利用者による、間の9版が非表示) | |||
行1: | 行1: | ||
− | [[ssh]] (Secure_Shell, セキュアシェル) は、認証を含む通信を安全にするための[[プロトコル]]のこと、もしくは、[[ssh]] | + | [[ssh]] (Secure_Shell, セキュアシェル) は、認証を含む通信を安全にするための[[プロトコル]]のこと、もしくは、[[ssh]] コマンドのことを指します。リモートでログインをして、コマンドを実行したり、ファイルを転送するといったことが実現できます。また、[[ssh]]コマンドのポートフォワーディング機能を使うことで、「通信が暗号化されないサービス」の通信を暗号化できます。[[認証]]は、'''パスワード認証'''、[[公開鍵認証]]、'''ワンタイムパスワード'''などが利用できます。デフォルトでは、[[TCP]]の22番ポートを利用します。[[sshポートフォワーディング]]を利用して、非暗号通信のプログラムの通信経路を暗号化するといった使い方もできます。 |
− | 読み方 | + | '''読み方''' |
− | えすえすえいち | + | ;[[Secure Shell]]:せきゅあしぇる |
+ | ;[[ssh]]:えすえすえいち | ||
__TOC__ | __TOC__ | ||
== 概要 == | == 概要 == | ||
+ | [[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の使い方]] をご参照下さい。 | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | ssh yourhostname.local | ||
+ | </syntaxhighlight> | ||
== ソフトウェア == | == ソフトウェア == | ||
− | |||
=== SSH サーバー === | === SSH サーバー === | ||
− | + | リモート接続したいサーバーで動作させる[[sshd]]のプログラムです。 | |
* [[OpenSSH]] | * [[OpenSSH]] | ||
− | |||
=== SSH クライアント === | === SSH クライアント === | ||
− | + | [[ssh]] 接続に使うクライアントプログラムです。 | |
− | * [[OpenSSH]] | + | * [[OpenSSH]] ([[ssh]]コマンド) |
* [[PuTTY]] | * [[PuTTY]] | ||
− | * | + | * Tera Term |
− | + | ||
=== SSH サーバー プロテクター === | === SSH サーバー プロテクター === | ||
− | |||
* [[sshguard]] | * [[sshguard]] | ||
* [[SEC]] | * [[SEC]] | ||
* [[iptables]] | * [[iptables]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== コマンドの置き換え == | == コマンドの置き換え == | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ align="bottom" style="color:#e76700;" |''コマンドの対応'' | |+ align="bottom" style="color:#e76700;" |''コマンドの対応'' | ||
行52: | 行74: | ||
! ssh系コマンド | ! ssh系コマンド | ||
|- | |- | ||
− | | | + | |telnet/[[rsh]]/rlogin |
|[[ssh]] | |[[ssh]] | ||
|- | |- | ||
− | | | + | |rcp |
|[[scp]] | |[[scp]] | ||
|- | |- | ||
行61: | 行83: | ||
|[[scp]]/[[sftp]] | |[[scp]]/[[sftp]] | ||
|} | |} | ||
− | + | == Secure Shell == | |
− | + | {{ssh}} | |
− | + | * [[一定期間操作のないbashを自動的にログアウトする方法]] | |
+ | * [[HTTPプロキシサーバ経由のssh接続]] | ||
== 関連項目 == | == 関連項目 == | ||
− | + | * 関連コマンド | |
− | * [[ | + | ** [[rsh]] |
− | * [[ | + | ** [[rsync]] |
+ | ** telnet | ||
+ | ** [[ftp]] | ||
+ | * [[公開鍵認証]] | ||
+ | ** [[公開鍵]] | ||
+ | ** [[秘密鍵]] | ||
+ | * [[パスワード]] | ||
+ | * [[パスフレーズ]] | ||
+ | * [[パスワードクラック]] | ||
* [[セキュリティ診断ツール]] | * [[セキュリティ診断ツール]] | ||
+ | * [[Secure Shell]]クライアント | ||
+ | ** [[OpenSSH]] | ||
+ | ** [[PuTTY]] | ||
+ | * [[ファイアーウォール]] | ||
+ | ** [[iptables]] | ||
+ | ** [[ipfw]] | ||
+ | * テクニック | ||
+ | ** [[トンネリング]] | ||
+ | * [[SSL-VPN]] | ||
+ | * [[Transport Layer Security]] ([[Transport Layer Security|SSL]]/[[Transport Layer Security|TLS]]) | ||
* [[tcpdump]] | * [[tcpdump]] | ||
− | + | <!-- vim: filetype=mediawiki | |
− | + | --> | |
− | + | ||
− | + |
2015年9月22日 (火) 21:33時点における最新版
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(セキュアシェル)
- OpenSSHのコマンド
- sshのプライベート鍵
- ssh関連
- 一定期間操作のないbashを自動的にログアウトする方法
- HTTPプロキシサーバ経由のssh接続