公開鍵暗号方式とは公開鍵と秘密鍵という2つの鍵を利用してデータの暗号化、復号化を行う暗号方式のことをいいます。
公開鍵暗号方式は暗号化するための公開鍵と復号化するための秘密鍵のペアを作成します。
公開鍵は暗号化させる相手に公開してもかまいませんが、秘密鍵は厳重に管理する必要があります。
公開鍵、秘密鍵ペアの作成
OpenSSH を使って Linux サーバーに接続するユーザーの公開鍵と秘密鍵のペアを作成します。
鍵ペアの作成は ssh-keygen をを使います。
ここでは SSH プロトコル Version 2 で利用する RSA 暗号を利用した鍵セットを作成します。
公開鍵と秘密鍵のペアの作成はリモートログインするユーザー権限で実行します。
$ /usr/local/openssh/bin/ssh-keygen -t rsa
Enter file in which to save the key (/home/koko/.ssh/id_rsa): 何も入力せずに Enter キーを押す
Created directory ‘/home/koko/.ssh’.
Enter passphrase (empty for no passphrase): **********パスフレーズを入力
Enter same passphrase again: **********再度パスフレーズを入力
Your identification has been saved in /home/koko/.ssh/id_rsa.
Your public key has been saved in /home/koko/.ssh/id_rsa.pub.
The key fingerprint is:
11:db:77:87:af:5e:c1:c3:ed:c9:be:87:3c:47:7d:d0 koko@server.honana.com
作成した鍵ペアのうち公開鍵 (~/.ssh/id_rsa.pub) を authorized_keys に登録します。
この作業もリモートログインするユーザーで行います。
$ chmod 600 ~/.ssh/authorized_keys
$ exit
PSCP を使った秘密鍵の転送
PSCP は DOS プロンプト上のコマンドライン操作でファイルを転送するツールです。
このツールを利用して秘密鍵 (~/.ssh/id_rsa) を Windows クライアントに転送します。
PuTTY Download Page から pscp.exe をダウンロードします。
ダウンロードした pscp.exe は C:\ に保存して、コマンドプロンプトを起動して以下のように入力します。
>pscp.exe koko@192.168.0.2:.ssh/id_rsa id_rsa
id_rsa | 0kB | 0.9 kB/s | ETA: 00:00:00 | 100%
Windows クライアントの C:\ に id_rsa が転送されます。
PuTTYgen を使った秘密鍵の作成
Windows クライアントに転送された秘密鍵をPuTTY が読み込むことができる形式に変換するために PuTTYgen を利用します。
PuTTY Download Page から入手することができます。
ダウンロードした puttygen.exe を起動して Load ボタンを押しすと [ ファイルを開くダイアログ ] が開くのでファイルの種類を [ All Files (*.*) ] に変更して Linux サーバから転送した秘密鍵 id_rsa を読み込みます。
サーバー側で秘密鍵を作成したときに入力したパスフレーズを入力します。
以下のように表示されると [ OK ] ボタンをクリックします。
[ Save private key ] ボタンをクリックして秘密鍵を保存します。
ここでは id_rsa.ppk として保存します。
OpenSSH の設定
OpenSSH の設定ファイル sshd_config ファイルを編集して以下のように記述します。
#LoginGraceTime 2m
#PermitRootLogin yes
PermitRootLogin noroot のログインを禁止
#StrictModes yes
#MaxAuthTries 6
55 行目辺り
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
PasswordAuthentication noパスワード認証を禁止
#PermitEmptyPasswords no
以下省略
OpenSSH の再起動
OpenSSH の設定ファイルを変更した後は OpenSSH を再起動する必要があります。
秘密鍵を使って SSH サーバーに接続
カテゴリを [ Connection ] → [ SSH ] → [ Auth ] に移動し [ Browse ] ボタンを押し PuTTYgen で作成した秘密鍵 id_rsa.ppk を指定して [ Open ] ボタンを押します。
ターミナルが起動するとユーザー名とパスフレーズを入力してログインすることができます。