4)公開鍵認証の利用

第4回は、SSHの公開鍵認証の利用についての説明です。 SSHにより通信の暗号化が行われても、パスワードによる認証を行っていると、パスワードを破られて不正にアクセスされる恐れがあります。また、バッチ処理でSSHを使用する際に、パスワード認証を行っていると処理実行時にパスワード入力を求められてしまい実行することが出来ません。これらの対策として公開鍵認証を利用します。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供

公開鍵(秘密鍵)による認証

 公開鍵認証では、秘密鍵/公開鍵のペアを作成し、秘密鍵を本人証明として利用し、秘密鍵がないとサーバーに接続できないようにします。
これにより、公開鍵で暗号化したデータしか通信されないため、ネットワーク上で秘密鍵やパスワードが流れることがなくなり、安全に通信を行うことが出来ます。

 そのために、下記の2点の設定を行う必要があります。
・接続元で公開鍵と秘密鍵を作成します。
・接続先に公開鍵を登録します。

(接続元サーバーで)公開鍵と秘密鍵の作成

・鍵の作成を行います(鍵の種類はDSAを使用します)
接続元サーバー上で以下のコマンドを実行して、DSA鍵の作成を行います。

$ ssh-keygen -t dsa
・問合せ項目に対し、各々下記の入力操作を行います。

Generating public/private rsa1 key pair.Enter file in which to save the key
 (/ホームディレクトリー/.ssh/identity):  ←そのままENTER
Enter passphrase (empty for no passphrase):  ←パスワードを入力
Enter same passphrase again:  ←確認のため再度パスワードを入力
Your identification has been saved in /ホームディレクトリー/.ssh/identity.
Your public key has been saved in /ホームディレクトリー/.ssh/identity.pub.
The key fingerprint is:
*ホームディレクトリーとは、ユーザーの個人領域のことです。


・下記のコマンドを実行しid_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されていることを確認します。
$ ls -la /ホームディレクトリー/.ssh
・/ホームディレクトリー/.sshのパーミッションを700に変更します。
$ chmod 700 /ホームディレクトリー/.ssh

接続先に(接続元の)公開鍵を登録

・作成した公開鍵を接続先サーバーに登録します。

「UTF-8対応 Tera Term Pro」でサーバーにログインします。
・.sshディレクトリーを作成します。
$ mkdir .ssh
・.sshディレクトリーに移動します。
$ cd .ssh
・viでauthorized_keysを新規作成します。
$ vi authorized_keys
・接続元の公開鍵(id_rsa.pub)の内容を、「authorized_keys」ファイルに追加して保存します。

sshd_configの編集

・更にセキュアな設定を行いたい場合は「/etc/ssh/sshd_config」をviで開いて編集します。(ここからは、root権限で作業します)
# vi /etc/ssh/sshd_config

(主な設定内容)
PasswordAuthentication no ←パスワードではなく鍵でログインする
PermitRootLogin no ←rootでのログインを許可するかどうか
ChallengeResponseAuthentication no ←チャレンジ・レスポンス認証を許可
PermitEmptyPassword no ←パスワードなしのログインは許可しない


・ファイルを保存したら、SSHサーバーを再起動します。
# /etc/rc.d/init.d/sshd restart

次回予告

 次回は、限定的に使用するポートをよりセキュアに運用するために「ポート番号の変更」について説明致します。

関連キーワード
Linux,サーバー防衛,サーバー運用,SSH,公開鍵認証,秘密鍵

コメントをお待ちしています

お名前:

メールアドレス:

コメント:

このエントリーのトラックバックURL

http://it.jfe-tec.jp/mt/mt-tb.cgi/25