IT pass HikiWiki - [TEBIKI]SSHサーバへの公開鍵認証によるログイン Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
[((<計算機とネットワークの手引集>))へ戻る]
{{toc}}
== 公開鍵認証とは
公開鍵認証とは, パスワードの代わりに
公開鍵とプライベート鍵のペアを用いる認証方法です.
公開鍵認証による利点は,
((*鍵そのものがネットワーク上を流れない*)) ことです.
通常のパスワードを使った認証では,
たとえ暗号化されているとはいえパスワードがネットワーク上を
流れます. 公開鍵認証ではパスワードはまったく
(暗号化された形ですら) ネットワーク上に流れません.
もちろん公開鍵認証でもユーザはパスワードに相当するもの
(パスフレーズ) を入力しますが, パスワード認証と違い
これはローカルマシン上でプライベート鍵を復号するためだけに使われ,
ネットワーク上には流れません.
(参考: ((<OpenSSH を使った簡易 VPN の構築 -- 「公開鍵認証とは」|URL:http://www.unixuser.org/~euske/doc/openssh/openssh-vpn.html>)) )
なお, プライベート鍵は秘密鍵と呼ばれることもありますのでご注意ください.
== 作業の概要
公開鍵認証をするには, 以下の準備が必要です.
(1) 公開鍵とプライベート鍵の対(つい;ペアー)を作成
(2) 接続元の計算機にプライベート鍵を置く
(3) 接続先の計算機に公開鍵を置く
== Unix 系 OS
Unix 系 OS (Unix, Linux, FreeBSD, Mac OS X 等) では,
OpenSSH に含まれるコマンド (ssh, ssh-keygen 等) を使用する場合の
例をとります.
=== Unix 系 OS での鍵の生成
以下のコマンドで, RSA 形式の公開鍵・プライベート鍵を作成します.
% ssh-keygen -t rsa -b 4096
パスフレーズの入力を求められるので, 入力して下さい.
パスフレーズについては ((<URL:#パスフレーズとは?>))
を参照してください.
デフォルトでは, 公開鍵として (({~/.ssh/id_rsa.pub})),
プライベート鍵として (({~/.ssh/id_rsa})) が作成されます.
プライベート鍵は他人から見られないよう, パーミッションに気をつけてください.
(メールで送信するなどは厳禁です). ネットワークを介して鍵をコピーする
際にも必ず暗号化するようにして下さい.
DSA形式の鍵を使っても構いません.
DSA形式の鍵を作る場合は, 例のうちrsaという文字列をdsaに置き換えてください.
=== Unix 系 OS でのサーバへの鍵の設置
接続先の計算機が ((< ITPASS サーバ|URL:http://epa.scitec.kobe-u.ac.jp>))
の場合には
((<"gate 登録システムの登録または更新/変更窓口"|URL:https://epa.scitec.kobe-u.ac.jp/~gate>))
から設置を行います. 「個人/グループユーザ登録内容更新/変更ページ」へ進み
「公開鍵」の欄に公開鍵ファイルの中身を貼り付けてください.
既にサーバに何らかの手段でログインできる場合には, scp コマンド等で
公開鍵を接続先の計算機にコピーし, ファイルの中身を
(({~/.ssh/authorized_keys})) に書き込んでください.
例えば, コピーした公開鍵のファイル名が (({id_rsa.pub})) の場合には,
以下のようにすると良いでしょう.
% cat id_rsa.pub >> ~/.ssh/authorized_keys
=== Unix 系 OS からのログイン
ssh, slogin などでログインできるかどうか試して下さい.
以下は接続先の計算機が itpass.scitec.kobe-u.ac.jp である場合の例です.
% ssh itpass.scitec.kobe-u.ac.jp
パスフレーズを聞かれるため, ((<URL:#Unix 系 OS での鍵の生成>))
で設定したパスフレーズを入力します.
なお, SSH にはプロトコルバージョン 1 と 2 があります.
接続先の計算機が受け付けるプロトコルバージョンと手元の ssh
コマンドのプロトコルバージョンが異なるとログインできない場合もあります.
その場合には, 以下のようにプロトコルバージョンを明示してアクセスすると
良いでしょう.
% ssh -1 epa.scitec.kobe-u.ac.jp
% ssh -2 epa.scitec.kobe-u.ac.jp
== Windows
Windows ユーザ向けに, Tera Term と Poderosa という
2つのソフトによる TTSSH を使った SSH ログインの方法を解説します.
=== MobaXTerm での鍵の生成およびログイン
((<[TEBIKI]MobaXTerm を用いた SSH サーバへのログイン>))
=== Tera Term での鍵の生成およびログイン
((<[TEBIKI]Tera Term を用いた SSH サーバへのログイン>))を参照してください
=== Poderosa での鍵の生成
Tera Term と同様のソフトに Poderosa というソフトがあります. 以下 Poderosa を用いるログイン方法について紹介します.
* 必要な資源のインストール
* (1) Microsoft .NET Freamework をインストール.
Poderosa を動かすために必要な, 実行環境と呼ばれる追加プログラムです.
これがまだ PC にインストールされていない場合,
まず Microsoft .NET Freamework をインストールします.
インストールされているかどうかは
「コントロール パネル」->「プログラムの追加と削除」にて確認できます.
* (2) Poderosa をインストール.
2 つとも, ((<このページ|URL:http://ja.poderosa.org/download/binary.html>))
から最新版を入手できます.
* インストール後,Poderosaを起動
* 「メニュー」→「ツール」→「SSH鍵生成ウィザード」を選択
* 「任意のパスフレーズ」欄に自分で考えた文字列を入力.
「確認入力」にも同じ文字列を入力
* 「鍵を生成します.このウィンドウの中でマウスを乱雑に動かして,
乱数を供給してください」とメッセージが出るので,指示に従い
乱数を生成する.
* 「秘密鍵を名前をつけて保存」「OpenSSH形式で公開鍵を名前をつけて保存」
をそれぞれ選択し鍵を保存.
後はこの公開鍵をサーバへ設置します. 設置方法は
((<URL:#Tera Term で生成した公開鍵のサーバへの設置>))と同じです.
=== Poderosa からのログイン
「ファイル」→「新規 Telnet/SSH 接続」で「新規接続」画面が
現れるので, 以下のように設定する.
* 「ホスト」接続したいサーバのIPアドレス, またはサーバ名
* 「プロトコル」SSH2
* 「ポート」SSH(22)
* 「ユーザ名」ユーザ名
* 「認証方法」公開鍵
* 「パスフレーズ」鍵ペア作成時に設定したパスフレーズ
* 「鍵ファイル」鍵ペア作成時に保存した秘密鍵を選択
* 「エンコーディング」システムの文字コード ( UTF-8 )
* 「ローカルエコー」しない
* 「改行の送信」CR
* 「種類」xterm
「OK」を押せば接続できます.
"ターミナル" の設定は, ITPASSサーバに接続する際は特ににいじらなくてよい.
== パスフレーズとは?
パスフレーズは, 鍵そのものの暗号化に用いられる文字列で, 空白文字も許容
します. (従って, パス「ワード」でなくパス「フレーズ」と呼ばれるわけで
す). ただし, 空白文字を許容する場合, 万が一プライベート鍵を奪取されると即座に
接続先の計算機上の自分のアカウントが乗っ取られるため,
原則的に何らかのパスフレーズを入力して下さい.
== 参考資料
* ((<SSH で RSA 公開鍵暗号による認証 (地球流体電脳倶楽部)|URL:http://www.gfd-dennou.org/library/cc-env/cvs/misc/ssh-rsa.htm>))
* ((<Tera TermProで公開鍵認証を使う (Homeserver on Vine Linux - Vine Linuxで自宅サーバーを作ろう)|URL:http://www.jitaku-server.net/ssh_teratermpro_security.html>))
* ((<Linux によるインターネット利用環境の構築 -- 6.3.SSHの鍵認証|URL:http://www.fmmc.or.jp/~fm/nwts/rh_linux/ch6/6_3.html>))
* ((<Tips Collection - OpenSSH|URL:http://quox.org/tips/tool/OpenSSH.html>))
* ((<WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編)-Fedoraで自宅サーバー構築|URL:http://fedorasrv.com/poderosa-public.shtml>))
{{toc}}
== 公開鍵認証とは
公開鍵認証とは, パスワードの代わりに
公開鍵とプライベート鍵のペアを用いる認証方法です.
公開鍵認証による利点は,
((*鍵そのものがネットワーク上を流れない*)) ことです.
通常のパスワードを使った認証では,
たとえ暗号化されているとはいえパスワードがネットワーク上を
流れます. 公開鍵認証ではパスワードはまったく
(暗号化された形ですら) ネットワーク上に流れません.
もちろん公開鍵認証でもユーザはパスワードに相当するもの
(パスフレーズ) を入力しますが, パスワード認証と違い
これはローカルマシン上でプライベート鍵を復号するためだけに使われ,
ネットワーク上には流れません.
(参考: ((<OpenSSH を使った簡易 VPN の構築 -- 「公開鍵認証とは」|URL:http://www.unixuser.org/~euske/doc/openssh/openssh-vpn.html>)) )
なお, プライベート鍵は秘密鍵と呼ばれることもありますのでご注意ください.
== 作業の概要
公開鍵認証をするには, 以下の準備が必要です.
(1) 公開鍵とプライベート鍵の対(つい;ペアー)を作成
(2) 接続元の計算機にプライベート鍵を置く
(3) 接続先の計算機に公開鍵を置く
== Unix 系 OS
Unix 系 OS (Unix, Linux, FreeBSD, Mac OS X 等) では,
OpenSSH に含まれるコマンド (ssh, ssh-keygen 等) を使用する場合の
例をとります.
=== Unix 系 OS での鍵の生成
以下のコマンドで, RSA 形式の公開鍵・プライベート鍵を作成します.
% ssh-keygen -t rsa -b 4096
パスフレーズの入力を求められるので, 入力して下さい.
パスフレーズについては ((<URL:#パスフレーズとは?>))
を参照してください.
デフォルトでは, 公開鍵として (({~/.ssh/id_rsa.pub})),
プライベート鍵として (({~/.ssh/id_rsa})) が作成されます.
プライベート鍵は他人から見られないよう, パーミッションに気をつけてください.
(メールで送信するなどは厳禁です). ネットワークを介して鍵をコピーする
際にも必ず暗号化するようにして下さい.
DSA形式の鍵を使っても構いません.
DSA形式の鍵を作る場合は, 例のうちrsaという文字列をdsaに置き換えてください.
=== Unix 系 OS でのサーバへの鍵の設置
接続先の計算機が ((< ITPASS サーバ|URL:http://epa.scitec.kobe-u.ac.jp>))
の場合には
((<"gate 登録システムの登録または更新/変更窓口"|URL:https://epa.scitec.kobe-u.ac.jp/~gate>))
から設置を行います. 「個人/グループユーザ登録内容更新/変更ページ」へ進み
「公開鍵」の欄に公開鍵ファイルの中身を貼り付けてください.
既にサーバに何らかの手段でログインできる場合には, scp コマンド等で
公開鍵を接続先の計算機にコピーし, ファイルの中身を
(({~/.ssh/authorized_keys})) に書き込んでください.
例えば, コピーした公開鍵のファイル名が (({id_rsa.pub})) の場合には,
以下のようにすると良いでしょう.
% cat id_rsa.pub >> ~/.ssh/authorized_keys
=== Unix 系 OS からのログイン
ssh, slogin などでログインできるかどうか試して下さい.
以下は接続先の計算機が itpass.scitec.kobe-u.ac.jp である場合の例です.
% ssh itpass.scitec.kobe-u.ac.jp
パスフレーズを聞かれるため, ((<URL:#Unix 系 OS での鍵の生成>))
で設定したパスフレーズを入力します.
なお, SSH にはプロトコルバージョン 1 と 2 があります.
接続先の計算機が受け付けるプロトコルバージョンと手元の ssh
コマンドのプロトコルバージョンが異なるとログインできない場合もあります.
その場合には, 以下のようにプロトコルバージョンを明示してアクセスすると
良いでしょう.
% ssh -1 epa.scitec.kobe-u.ac.jp
% ssh -2 epa.scitec.kobe-u.ac.jp
== Windows
Windows ユーザ向けに, Tera Term と Poderosa という
2つのソフトによる TTSSH を使った SSH ログインの方法を解説します.
=== MobaXTerm での鍵の生成およびログイン
((<[TEBIKI]MobaXTerm を用いた SSH サーバへのログイン>))
=== Tera Term での鍵の生成およびログイン
((<[TEBIKI]Tera Term を用いた SSH サーバへのログイン>))を参照してください
=== Poderosa での鍵の生成
Tera Term と同様のソフトに Poderosa というソフトがあります. 以下 Poderosa を用いるログイン方法について紹介します.
* 必要な資源のインストール
* (1) Microsoft .NET Freamework をインストール.
Poderosa を動かすために必要な, 実行環境と呼ばれる追加プログラムです.
これがまだ PC にインストールされていない場合,
まず Microsoft .NET Freamework をインストールします.
インストールされているかどうかは
「コントロール パネル」->「プログラムの追加と削除」にて確認できます.
* (2) Poderosa をインストール.
2 つとも, ((<このページ|URL:http://ja.poderosa.org/download/binary.html>))
から最新版を入手できます.
* インストール後,Poderosaを起動
* 「メニュー」→「ツール」→「SSH鍵生成ウィザード」を選択
* 「任意のパスフレーズ」欄に自分で考えた文字列を入力.
「確認入力」にも同じ文字列を入力
* 「鍵を生成します.このウィンドウの中でマウスを乱雑に動かして,
乱数を供給してください」とメッセージが出るので,指示に従い
乱数を生成する.
* 「秘密鍵を名前をつけて保存」「OpenSSH形式で公開鍵を名前をつけて保存」
をそれぞれ選択し鍵を保存.
後はこの公開鍵をサーバへ設置します. 設置方法は
((<URL:#Tera Term で生成した公開鍵のサーバへの設置>))と同じです.
=== Poderosa からのログイン
「ファイル」→「新規 Telnet/SSH 接続」で「新規接続」画面が
現れるので, 以下のように設定する.
* 「ホスト」接続したいサーバのIPアドレス, またはサーバ名
* 「プロトコル」SSH2
* 「ポート」SSH(22)
* 「ユーザ名」ユーザ名
* 「認証方法」公開鍵
* 「パスフレーズ」鍵ペア作成時に設定したパスフレーズ
* 「鍵ファイル」鍵ペア作成時に保存した秘密鍵を選択
* 「エンコーディング」システムの文字コード ( UTF-8 )
* 「ローカルエコー」しない
* 「改行の送信」CR
* 「種類」xterm
「OK」を押せば接続できます.
"ターミナル" の設定は, ITPASSサーバに接続する際は特ににいじらなくてよい.
== パスフレーズとは?
パスフレーズは, 鍵そのものの暗号化に用いられる文字列で, 空白文字も許容
します. (従って, パス「ワード」でなくパス「フレーズ」と呼ばれるわけで
す). ただし, 空白文字を許容する場合, 万が一プライベート鍵を奪取されると即座に
接続先の計算機上の自分のアカウントが乗っ取られるため,
原則的に何らかのパスフレーズを入力して下さい.
== 参考資料
* ((<SSH で RSA 公開鍵暗号による認証 (地球流体電脳倶楽部)|URL:http://www.gfd-dennou.org/library/cc-env/cvs/misc/ssh-rsa.htm>))
* ((<Tera TermProで公開鍵認証を使う (Homeserver on Vine Linux - Vine Linuxで自宅サーバーを作ろう)|URL:http://www.jitaku-server.net/ssh_teratermpro_security.html>))
* ((<Linux によるインターネット利用環境の構築 -- 6.3.SSHの鍵認証|URL:http://www.fmmc.or.jp/~fm/nwts/rh_linux/ch6/6_3.html>))
* ((<Tips Collection - OpenSSH|URL:http://quox.org/tips/tool/OpenSSH.html>))
* ((<WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編)-Fedoraで自宅サーバー構築|URL:http://fedorasrv.com/poderosa-public.shtml>))