Puttyによる公開鍵認証 - Public Key Authentication

差分表示


Public Key Authentication

* 概要

 公開鍵認証方式としてSSH2(RSA)を使用し、PuttyからOpenSSHを使用しているホストにログインする方法

* 鍵ペアの作成 (puttygen.exe)
- puttygen.exeを起動します。
- Parametersの中からSSH-2 RSAを選択し、[Generate]をクリックします。
- puttygenのウィンドウの中でマウスを適当に動かすとプログレスバーが進み、鍵ペアが生成されます。
- 鍵ペアの生成が終了したら、Key Passphraseを入力し、[Save private key]をクリックします。(ファイル名はここでは"id_rsa.ppk"とし、適当なフォルダに隠しておきます。)
- 次に、ホスト側に設置する公開鍵を作成します。
- puttygenのウィンドウ内、"Public key for pasting into OpenSSH authorized_keys file."とあるBOXがOpenSSH用の公開鍵です。このBOXの文字列をコピーして公開鍵ファイルにします。(ファイル名はここでは"id_rsa.pub"とします。)
- 以上で鍵ペアの作成は終了です。

* ホストへの公開鍵の設置
- 公開鍵認証したいユーザー名で、ホストに通常のパスワード認証でログインし、以下の作業を行います。
- ユーザのHOMEディレクトリに.sshフォルダがあるか確認します。なければ作成します。
- SCPなどを使い、HOMEディレクトリに公開鍵ファイル"id_rsa.pub"を転送します。&br()(このとき間違って、秘密鍵ファイル"id_rsa.ppk"を転送しない様に気をつけてください。他のホストでの認証に使用しているかもしれない秘密鍵を、ホスト管理者が入手してしまうかも知れません。)
- 以下の手順を行い、公開鍵をインストールします。
---(
cd $HOME
cat id_rsa.pub >> .ssh/authorized_keys
rm id_rsa.pub
chmod 600 ../authorized_keys
---)

* ログインセッションの作成 (putty.exe)
- putty.exeを起動します。
- Host Name (or IP address)を入力し、Port 22, SSHを確認します。
- Category > Connection > Data から Auto-login username欄にログインユーザ名を入力します。
- Category > Connection > SSH > Auth からPrivate key file for authentication欄に秘密鍵へのパスを入力します。(Browseで探すと便利です。)
- 基本設定は以上です。(あとはデフォルトで大丈夫ですが、希望の環境に合わせてその他を設定してもかまいません。)
- Category > Session から Saved sessions欄のBOXに適当なセッション名を入力して[Save]ボタンを押します。
- 以上でログイン環境が整いました。次からはセッション名をダブルクリックするだけで公開鍵認証によりログインできます。

* Tips
- 鍵ペアの生成時に、Key Passphraseを入力しなければ、ログイン時にパスフレーズを聞かれなくなるので、自動ログインに便利です。しかし、この場合、plivate_keyを盗まれた場合には、何の保護もなくなってしまうので気をつけなくてはなりません。
- Puttyには(pageant.exe)というSSHエージェントがあり、Key Passphraseを自動入力してくれますが、保存機能がないので、立ち上げる度に1度はパスフレーズを入力しなくてはなりません。(PuTTY β 0.58 ごった煮版という、この点を改良したバージョンが存在します。)
- ホスト側に設置する"authorized_keys"ファイルのパーミッションは600である必要があります。パーミッションが違っているとログインできません。
- 通常のホストはパスワード認証を許可していますので、公開鍵認証にしたからといって即座にセキュリティが強化される訳ではありません。強化するためにはホスト側でパスワード認証を禁止しなくては意味がありません。