sshとは
SSHとは
暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
SSHでは以下の点で従来のTelnetより安全な通信が行える。1
- パスワードやデータを暗号化して通信する。
- クライアントがサーバーに接続する時に、接続先が意図しないサーバーに誘導されていないか厳密にチェックする。
詳しくはWikipediaで
SSHの認証方式
SSHの主要な認証方式としてはパスワード認証方式と公開鍵認証方式がある。
- パスワード認証方式
- パスワード認証方式はデフォルトの認証方式で、ユーザー名とパスワードでログインする方式。
ユーザー名とパスワードは接続先OSのユーザーアカウントの情報が使用される。- 公開鍵認証方式
- 公開鍵認証方式は公開鍵と秘密鍵の2つの鍵(キーペア)を使用した接続方式。
サーバーに公開鍵、クライアントに秘密鍵を置いて使用する。
公開鍵認証を使うとパスワード入力なしでログインする事が可能になる。パスワード認証方式はサーバー側で明示的に無効にしていない限り使用できるが、セキュリティ的には脆弱なので無効にしている事も多い。
鍵とは?
公開鍵暗号方式を簡単に言うと、
(1) A さんは開いた状態の南京錠を世界中に配布し
(2) A さんに連絡を取りたい B さんは自分の小包にその南京錠を使って鍵を掛ける
(2') この状態の小包は B さんであってももはや開けることはできない
(3) 南京錠で鍵の掛かった小包を A さんが開錠する
という手続きを踏みます。
「鍵の開いた南京錠」に相当するのが「公開鍵」です。
「南京錠を開錠する鍵」が秘密鍵です。
宛先の人物の公開鍵を利用してデータを暗号化することは世界中の誰でもできますが、これを復号できるのは宛先の人物が所有する(公開鍵とペアになる)秘密鍵だけです。
ペアになるからといって公開鍵から秘密鍵に関する情報を得ることはほぼ不可能とされています (巨大な素数同士の積の数を素因数分解しなければならない)。
先の例え話をすると、南京錠の構造から開錠用の鍵を作ることは絶対にできないということです。