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


