では、SSHの導入について説明します。
前提として、CentOS4.5を想定していますので、
異なる場合は適時読み替えてください。
さて、CentOS4.5では、インストール時に通常はSSHが導入済みです。
確認する場合は、以下のコマンドで導入済みかどうかわかります。
#ssh -V
#OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
上記のように表示されれば導入済みです。
導入されていない場合は、yumを利用して導入しましょう。
#yum install openssh-server
クライアントも導入するのであれば合わせて「yum install openssh-client」を実行しましょう。
さて、基本的なSSHの環境があることを前提として、
初歩的な設定をしていきます。
ここで目標とするのは以下のような環境です。
- rootユーザでのログインは許可しない
- パスワード無しのログインは許可しない
- 認証にはRSA公開鍵認証方式を使う
- 認証プロトコルではSSH2のみ有効とする
- 特定のIP以外からは接続を許可しない
以上の環境を実現するように整備します。
なお、この作業を実施してしまうと、
これまでの認証方式では接続できなくなります。
接続に利用する鍵を取得するまではSSHサーバを再起動しないでください
作業手順としては、
- 鍵の生成と設定、そして取得
- SSHサーバの設定
- 特定IPからのみ接続可能なように設定
- SSHサーバの再起動
以上の手順となります。
早速「1.鍵の生成と取得」を行いましょう。
鍵の生成は、非常に簡単です。
#ssh-keygen -t rsa
上記のコマンドを実行すると2つの入力を求められます。
1つは生成されたキーファイルの保存先です。
これについてはとくに変更の必要はありませんので「Enter」で進みましょう。
次に、パスフレーズの入力を求められます。
確認も含めると2回入力する必要がありますので入力しましょう。
#Generating public/private rsa key pair.
#Enter file in which to save the key (/home/(ユーザ名)/.ssh/id_rsa):
#Created directory ‘/home/(ユーザ名)/.ssh’.
#Enter passphrase (empty for no passphrase):
#Your identification has been saved in /home/(ユーザ名)/.ssh/id_rsa.
#Your public key has been saved in /home/(ユーザ名)/.ssh/id_rsa.pub.
#The key fingerprint is:
#(鍵指紋に関する情報が表示される)
以上でRSA形式の秘密鍵と公開鍵が生成されます。
ここで生成された二つの鍵ファイルですが、それぞれ利用可能なようにします。
なお、ここで入力したパスフレーズはログインや鍵を変換・利用する際
常に入力を求められる為、必ず覚えておきましょう
まず、公開鍵(id_rsa.pub)ですが、こちらはサーバ側で利用します。
この際にファイル名がSSHサーバの設定ファイルで指定されていますので
ファイル名を「authorized_keys」に変更します。
#mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
次に、秘密鍵(id_rsa)ですがこちらはSSHクライアント側で利用します。
SFTPやFTPにて接続して取得してください。
取得したファイルですがTeraTermProではそのまま使えますが
PuTTYでは変換する必要がありますのでご注意ください。
以上で、「鍵の生成と設定、そして取得」が終了しました。
次に「2.SSHサーバの設定」を行います。
設定を行うためには「sshd_config」ファイルを編集します。
通常は「/etc/ssh/sshd_config」にありますので
#vi /etc/ssh/sshd_config
で編集を開始しましょう。
では、上であげた設定をそれぞれ行います。
- rootユーザでのログインは許可しない
PermitRootLogin no
※デフォルトでは「#PermitRootLogin yes」となっていますので、
「#」をはずし、設定を「no」に変更します。
- パスワード無しのログインは許可しない
PermitEmptyPassword no
※デフォルトでは「#PermitEmptyPassword no」となっていますので、
「#」をはずします。
- 認証にはRSA公開鍵認証方式を使う(パスワード認証を利用しない)
PasswordAuthentication no
※この設定は、パスワード認証を利用しない設定です。
※デフォルトでは「PasswordAuthentication yes」となっていますので、
設定を「no」に変更します。
RSAAuthentication yes
※この設定はRSA認証を利用する設定です
※デフォルトでは「#RSAAuthentication yes」となっていますので、
「#」をはずします。
PubkeyAuthentication yes
※この設定は公開鍵交換方式を利用する設定です
※デフォルトでは「#PubkeyAuthentication yes」となっていますので、
「#」をはずします。
- 認証ではSSH2のみ有効とする
Protocol 2
※デフォルトでは「#Protocol 2,1」となっていますので、
「#」をはずし、設定を「2」に変更します。
以上で「2.SSHサーバの設定」が終了となります。
前編の最後として「3.特定IPからのみ接続可能なように設定」を行います。
手順としては、一旦全ての接続を拒否する設定を行い、
その後、接続可能なIPやアドレス範囲を追加します。
まずは全ての接続を拒否します。
対象ファイルは「/etc/hosts.deny」を編集します。
初期設定のままであれば特に何も設定が行われていないと思われますので、
以下の設定を追加します。
sshd:ALL
上記の設定で、全ての接続が拒否されます。
次に、特定IPからの接続を許可します。
対象のファイルは「/etc/hosts.allow」です。
接続可能なIPを確認した上で以下の設定を追加します。
sshd:(接続を許可するIP)
以上で設定したIPからの接続が可能となります。
なお、複数のIPアドレスからの接続を許可したい場合は
複数行にわたって、許可するIPを記載してもかまいませんし、
ある範囲のIPを許可するのであれば、範囲を指定し許可してもかまいません。
さて、最後に「4.SSHサーバの再起動」を行いましょう。
まぁ、説明するまでもありませんが・・・
#service sshd restart
sshd を停止中: [OK]
sshd を起動中: [OK]
以上で終了です。
長編になりましたがこれで「SSHの導入」が終了しました。
おつかれさまでした。
- Newer: TeraTermProを使った鍵認証方式による接続方法の説明
- Older: SSHについて
