10週間ウェブ開発講座

公開鍵認証方式

公開鍵認証方式について説明します。

なお、下記で打消線が引いてあるサイトの情報は、アルゴリズムの説明に誤りがあります。春山さん、ご指摘どうもありがとうございます。
公開鍵方式については、「第3回 公開鍵と秘密鍵を作るアルゴリズム:ITpro」を参照してください。 <= 春山: 糞記事です. 参考にしてはいけません.

公開鍵認証方式は、公開鍵と秘密鍵の二種類の鍵を使ってユーザ認証をする方法です。
次のような手順でユーザ認証が進みます*1

  1. あらかじめサーバ側に公開鍵を登録しておく
  2. SSH接続時に公開鍵が利用できるかどうかの確認が行われる
  3. クライアント側は公開鍵にユーザ名などのデータを加え、秘密鍵で署名してサーバ側に送信する
  4. サーバ側はユーザの公開鍵を使って署名を確認する
  5. 確認できればログインを許可する

以降で認証を受けるための具体的な手順を説明します。

公開鍵認証方式に対応するための鍵の作り方

前回までの講座で、「PuTTYごった煮版」がインストールされていると仮定します。
PuTTYごった煮版にはputtygen.exeという鍵生成ツールが付属しています
(普通にインストールした場合、「C:\Program Files\PuTTY\puttygen.exe」に存在します)。
これを利用して鍵を作成します。

puttygen.exe

puttygen.exeを起動する、と次のようなウィンドウが開きます。

puttygen1.png

「SSH-2 RSA」にチェックが入っていることと、「生成する鍵のビット数」が2048であることを確認し、「生成」ボタンをクリックします。

puttygen2.png

乱数生成のために、マウスをウィンドウ上で適当に動かします。

puttygen3.png

しばらくすると鍵生成が完了します。

puttygen4.png

このウィンドウの「OpenSSHのauthorized_keysファイルにペーストするための公開鍵」の部分のテキストをコピーし、
authorized_keysという名前のテキストファイルにペーストします(このファイルがあなたの公開鍵になります)。

また、「鍵のパスフレーズ」と「パスフレーズの確認」を入力した上で「秘密鍵の保存」をクリックし、「identity」という名前で保存します。

公開鍵をサーバに設置する

まず、「WinSCP」を起動します。
自分のホームディレクトリの下に「.ssh」というディレクトリを作成します。

winscp1.png

「.ssh」を作成したら、「右クリック => Properties」して次のように設定します。

winscp2.png

Octalが「0700」になっていることを確認して、「OK」をクリックします。

続いて、.sshの中に入ります。
ここに先ほど作成した公開鍵の「authorized_keys」を置きます。

winscp3.png

「authorized_keys」も「右クリック => Properties」して、Octalが「0600」になっていることを確認します。

winscp4.png

ここまでで公開鍵の設置の完了です。

公開鍵認証を利用してサーバにログインする

PuTTYで公開鍵認証を利用して、サーバにログインする

PuTTYを起動し、左側のメニューから「接続 => SSH => 認証」をクリックする。
「認証のためのプライベートキーファイル」の欄に先ほど作成した秘密鍵を指定します。

putty1.png

後は通常通り、サーバ(s-tanno.com)とポート(1012)を指定してログインすれば問題ありません。

WinSCPで公開鍵認証を利用して、サーバにログインする

WinSCPを起動し、「New」をクリックし、「Private key file:」に先ほど作成した秘密鍵を指定します。

winscp_identity.png

その他の項目は通常通り、「Host name:」(s-tanno.com)と「Port number:」(1012)を指定してログインすれば問題ありません。

Windows環境でない場合

端末ソフト*2でログインした後で次のコマンドを入力することで、鍵を生成することができます。

cd
mkdir .ssh
chmod 700 .ssh
cd ~/.ssh
ssh-keygen -t rsa -b 2048
#(パスフレーズを入力)
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

*1 これはSSHバージョン2の手順です。
*2 例えばMacOSなら、Terminal.appなどが標準でインストールされています。

添付ファイル: filewinscp4.png 107件 [詳細] fileputtygen4.png 118件 [詳細] fileputtygen3.png 114件 [詳細] fileputtygen2.png 111件 [詳細] fileputtygen1.png 122件 [詳細] filewinscp_identity.png 107件 [詳細] filewinscp3.png 114件 [詳細] filewinscp2.png 100件 [詳細] filewinscp1.png 115件 [詳細] fileputty1.png 125件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-07-30 (金) 14:05:25 (37d)