TOP » OpenSSH で SSH サーバー構築 » RSA 公開鍵暗号方式を用いた認証

RSA 公開鍵暗号方式を用いた認証

公開鍵暗号方式とは公開鍵と秘密鍵という2つの鍵を利用してデータの暗号化、復号化を行う暗号方式のことをいいます。
公開鍵暗号方式は暗号化するための公開鍵と復号化するための秘密鍵のペアを作成します。
公開鍵は暗号化させる相手に公開してもかまいませんが、秘密鍵は厳重に管理する必要があります。

公開鍵、秘密鍵ペアの作成

OpenSSH を使って Linux サーバーに接続するユーザーの公開鍵と秘密鍵のペアを作成します。
鍵ペアの作成は ssh-keygen をを使います。
ここでは SSH プロトコル Version 2 で利用する RSA 暗号を利用した鍵セットを作成します。
公開鍵と秘密鍵のペアの作成はリモートログインするユーザー権限で実行します。

# su - koko
$ /usr/local/openssh/bin/ssh-keygen -t rsa

Generating public/private rsa key pair.
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 に登録します。
この作業もリモートログインするユーザーで行います。

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ exit

PSCP を使った秘密鍵の転送

PSCP は DOS プロンプト上のコマンドライン操作でファイルを転送するツールです。
このツールを利用して秘密鍵 (~/.ssh/id_rsa) を Windows クライアントに転送します。
PuTTY Download Page から pscp.exe をダウンロードします。
ダウンロードした pscp.exe は C:\ に保存して、コマンドプロンプトを起動して以下のように入力します。

>cd c:\
>pscp.exe koko@192.168.0.2:.ssh/id_rsa id_rsa

koko@192.168.0.2’s password: **********koko ユーザーのログインパスワードを入力
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 ] ボタンをクリックします。

PuTTYgen

[ Save private key ] ボタンをクリックして秘密鍵を保存します。
ここでは id_rsa.ppk として保存します。

PuTTYgen

OpenSSH の設定

OpenSSH の設定ファイル sshd_config ファイルを編集して以下のように記述します。

# vi /usr/local/openssh/etc/sshd_config
/usr/local/openssh/etc/sshd_config
36 行目辺り
#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 を再起動する必要があります。

# kill -HUP `cat /var/run/sshd.pid`

秘密鍵を使って SSH サーバーに接続

カテゴリを [ Connection ] → [ SSH ] → [ Auth ] に移動し [ Browse ] ボタンを押し PuTTYgen で作成した秘密鍵 id_rsa.ppk を指定して [ Open ] ボタンを押します。

PuTTYgen

ターミナルが起動するとユーザー名とパスフレーズを入力してログインすることができます。

カテゴリー
Fedora のインストール
ネットワーク設定
OpenSSH で SSH サーバー構築
NTP で時刻情報サーバー構築
Apache HTTP Server で Web サーバー構築
MySQL でデーターベースサーバー構築
PostgreSQL でデーターベースサーバー構築
PHP で Web アプリケーションサーバー構築
qmail でメールサーバー構築
Samba でファイルサーバー構築
BIND でネームサーバー構築
Tomcat で Web アプリケーションサーバー構築
ProFTPD で FTP サーバー構築
システム設定
CMS でサイト構築
snort でネットワーク進入探知システム構築
ライブラリのインストール