ここまでで説明したメカニズムには、いくつかの重要なファイルが関係します。クライアント側には、既知のホストのリストやパブリック キー認証に使用されるパブリック
キー/プライベート キー ペア、あるいはホストベースの認証を行う場合は、ホスト キーがあります。一方、サーバ側には、各ユーザを対象とする許可されたキーのファイルおよびサーバのホスト
キーがあります。
HP Systems Insight ManagerはOpenSSHを使用するため、ここで説明するディレクトリおよびファイル名は、OpenSSHがインストールされたシステムに固有のものです。
SSHクライアント コンフィギュレーション ディレクトリ
標準のOpenSSHクライアントを実行する各ユーザは、クライアントがこれらのファイルを保存するために使用するコンフィギュレーション ディレクトリを所有します。HP-UXおよびLinuxでは、このディレクトリは、ユーザのホーム
ディレクトリの下にある隠しディレクトリ「.ssh」です(例:/home/sshuser/.ssh)。Windowsでは、このディレクトリは、通常、ユーザの「Documents
and Settings」ディレクトリにあります(例:C: \Documents and Settings\sshuser\.ssh)。
このディレクトリは、最初に必要になった時点で、SSHにより自動的に作成されます。システムからの接続が最初に行われると、このディレクトリが作成され、known_hostsファイルを作成できるようなります。また、HP
Systems Insight Managerで、ユーザ認証をセットアップするために、管理対象システムに対してmxagentconfigが実行されると、このディレクトリが作成され、CMSから送信するキーをユーザの認証済みのキー
ファイルに配置できるようになります。
既知のホスト
既知のホスト キーのリストは、known_hostsファイルにあります。このファイルには、ユーザが受け入れたホスト キーが記述されます。コマンド ライン クライアントからSSHサーバに最初に接続すると、必ず、ホストが認識されていないことがクライアントからユーザに通知され、追加できるかどうかの問い合わせが行われます。
$ ssh peanut
The authenticity of host 'peanut (192.168.0.2)' can't be established.
RSA key fingerprint is 31:d7:ce:aa:24:c3:42:fe:77:cd:48:80:f6:0e:34:b6.
Are you sure you want to continue connecting (yes/no)? |
このメッセージを受け入れると、known_hostsファイルにエントリが追加されます。たとえば、サーバの再インストールなど、SSHサーバのホスト キーが変更されるようなことがあったり、別のシステムがそのサーバに成りすまそうとしたりすると、当該のキーが既知のキーと一致しなくなり、クライアントの接続は切断されます。
$ ssh peanut
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
31:d7:ce:aa:24:c3:42:fe:77:cd:48:80:f6:0e:34:b6.
Please contact your system administrator.
Add correct host key in /home/sshuser/.ssh/known_hosts to get rid of this message.
Offending key in /home/sshuser/.ssh/known_hosts:1
RSA host key for peanut has changed and you have requested strict checking.
Host key verification failed.
|
パブリック キー/プライベート キー ペア
パブリック キー認証のために、キー ペアが作成され、ユーザの.sshディレクトリに保存されます。プライベート キーは、クライアント システムの外にもれることはありません。プライベート
キーは、認証の過程で、対応するパブリック キーを使用してリモートのSSHサーバが暗号化したメッセージを復号化するために使用されます。
パブリック キーは、実際には、クライアントが使用することはありません。このキーは、リモート システムにコピーできるように、ユーザのSSHコンフィギュレーション ディレクトリに保存されます。実際、このファイルが消失するようなことがあっても、プライベート
キーから再生できます。つまり、パブリック キーがこのディレクトリに保存される主な理由は、利便性を考慮したためです。
通常、キー ペアは、そのキーのタイプに適合する名前で保存されます。プライベート キーとパブリック キーには同じファイル名が付けられますが、プライベート キーには、拡張子がなく、パブリック
キーには「.pub」という拡張子が付けられます。たとえば、あるOpenSSH DSAキー ペアは、id_dsaファイルとid_dsa.pubファイルに保存され、あるRSAキー ペアは、id_rsaファイルとid_rsa.pubファイルに保存されます。
認証済みのキー
ユーザのSSHコンフィギュレーション ディレクトリには、authorized_keys2という名前の、認証済みのキー ファイルもあります。最後に、このファイルについて説明します。このファイルは、パブリック
キー認証を使用したリモート ログインが要求されたとき、チェックされるキーのリストです。リモート クライアントによって提示されているキーがファイルのリストにある場合、SSHサーバは、そのキーを使用してチャレンジを暗号化し、リモート
クライアントに送信し、チャレンジに対するレスポンスが正しい場合は、ログインを許可します。そのパブリック キーがない場合は、認証はできなくなります。
このファイルは、通常、手動で維持管理されます。キー ペアを生成し、パスワード認証を使用して、ログインしたいすべてのシステムにパブリック キーをコピーし、これらの各システム上にあるauthorized_keys2ファイルの末尾に追加します。また、各システム上でホーム
ディレクトリをNFSマウントすることもできます。この場合は、1つのファイルを更新するだけで済みます。
大量のシステムがある場合、この手順は、うんざりするような作業になる可能性があります。各システムにリモートからログインして、ネットワーク経由でキーをコピーし、キー ファイルの更新のための何らかのコマンドを発行しなければなりません。幸いなことに、HP
Systems Insight Managerには、mxagentconfigというツールが用意されており、このツールを使用すると、一連のプロセスが簡単になります。次の項では、mxagentconfigについて説明します。 |