SSH Tectia

システム全体のホスト鍵の保存場所の使用

ホスト鍵がユーザ固有のホスト鍵ディレクトリに見つからない場合は、次に、UNIX では /etc/ssh2/hostkeys ディレクトリから、Windows では "%ALLUSERSPROFILE%\Application Data\SSH\HostKeys" ディレクトリから検索されます。ホスト鍵ファイルは、システム全体のディレクトリに自動的に保存されるわけではなく、システム管理者 (root) が手動で更新するか、または SSH Tectia Manager を使用して更新する必要があります。

ホスト鍵の配布に SSH Tectia Manager が使用されていない場合は、下の手順に従って手動でホスト鍵を配布できます。この手順では UNIX ファイルのパスを使用していますが、Windows にも適用できます。単純に、UNIX のパスを対応する Windows のパスに置き換えてください。

ハッシュ化された形式での鍵の保存

ハッシュ化されたリモート ホスト鍵を取得し、システム全体の保存場所に保存するには、以下の手順を実行してください。

  1. クライアント側のユーザの中で、その $HOME/.ssh2/hostkeys がシステム全体の /etc/ssh2/hostkeys の基礎になるユーザを選択します。鍵をシステム全体の場所に保存するには管理者権限が必要なため、このユーザは管理者権限を持っている必要があります。

    また、一部のサーバでホスト鍵が変更された場合も、後で同じユーザ アカウントを使用してシステム全体の /etc/ssh2/hostkeys を管理する必要があります。この処理では、そのユーザのホスト鍵を $HOME/.ssh2/hostkeys ディレクトリに保存した後、この変更をシステム全体の /etc/ssh2/hostkeys ディレクトリに複製します。

  2. 初めて鍵を取得するときは $HOME/.ssh2/hostkeys ディレクトリが空であること、また保存されたホスト鍵が意図したものであることを確認します。

    後で新しい鍵を取得する必要がある場合は、同じ $HOME/.ssh2/hostkeys/salt ファイルを使用する必要があります。

  3. SSH Tectia Client をリモート サーバに接続し、フィンガープリントを検証して、鍵を保存します。

    存在するリモート サーバの台数分、この手順を繰り返します。ユーザ認証を完了する必要はなく、SecureShell 接続の鍵の交換部分だけでよいことに注意してください。

  4. システム全体の場所で管理するすべてのホスト鍵を取得したら、たとえば以下のコマンドを実行することによって、それらの鍵をシステム全体の場所に置きます。

    # mkdir /etc/ssh2/hostkeys
    # cp -p $HOME/.ssh2/hostkeys/* /etc/ssh2/hostkeys 

    また、SSH Tectia Client がハッシュ化されたホスト鍵を識別できるように、salt ファイル ($HOME/.ssh2/hostkeys/salt) もコピーする必要があります。さらに、複数のユーザがシステム全体の /etc/ssh2/hostkeys ディレクトリを管理する場合は、これらのユーザが同じ salt ファイルを共有する必要があります。

ホスト鍵用のシステム全体の場所を作成したら、ssh-keygen-g3 ツールを使用してその場所を管理できます。

以下のコピー例は、ホスト鍵の保存場所を管理するために最も頻繁に必要になるコマンドを示しています。これらのコマンドでは、コピー元としてユーザ固有の hostkey 保存場所 ($HOME/.ssh2/hostkeys、および場合によっては $HOME/.ssh/known_hosts ファイル) を使用しています。鍵を別のコピー元からコピーする場合は、適切な --hostkeys-directory または --hostkey-file オプションをコマンドに追加する必要があります。

'alpha' という名前の新しいホストの鍵を、ユーザ固有の hostkey 保存場所からシステム全体のディレクトリにコピーするには、以下のコマンドを入力します。

# ssh-keygen-g3 --append=no --overwrite=no \
--copy-host-id alpha /etc/ssh2/hostkeys 

この場合、サーバ 'alpha' の鍵がすでに存在していると、このコマンドは失敗し、鍵は更新されません。

既知のホストに鍵を追加するには、以下のコマンドを入力します。

# ssh-keygen-g3 --append=yes --copy-host-id alpha /etc/ssh2/hostkeys

既知のホストの鍵を更新するには、以下のコマンドを入力します。

# ssh-keygen-g3 --append=no --copy-host-id alpha /etc/ssh2/hostkeys

既知のホストのリストからホストを削除するには、以下のコマンドを入力します。

# ssh-keygen-g3 --hostkeys-directory /etc/ssh2/hostkeys \
--delete-host-id alpha

ssh-keygen-g3 ツールの詳細については、ssh-keygen-g3(1)を参照してください。

平文形式の鍵の保存

従来のリモート ホスト鍵を取得し、システム全体の保存場所に保存するにはするには、以下の手順を実行してください。

  1. サーバ側のユーザとして、/etc/ssh2/hostkey.pub ファイルを key_<port>_<hostname>.pub として、サーバからクライアント上の /etc/ssh2/hostkeys/ ディレクトリにコピーします。

    この操作はサーバ上の非特権ユーザとして実行できますが、クライアント上では特権ユーザ (root など) である必要があります。

  2. ファイルを転送する場合や、転送の後にフィンガープリントの一致を検証する場合は、ssh-keygen-g3 のオプション -F によるセキュアな手段を使用します。たとえば、UNIX 上の SSH Tectia Server では以下のようにします。

    $ ssh-keygen-g3 -F /etc/ssh2/hostkey.pub 

    クライアントでは以下のようにします。

    # ssh-keygen-g3 -F /etc/ssh2/hostkeys/key_<port>_<hostname>.pub 

    この識別は、クライアントの接続先のホストとポートに応じて異なることに注意してください。また、IP を使用した接続や、同じホストの異なるポートへの接続も別のホストと見なされます。一つの key_<port>_<hostname>.pub を、これらの異なるすべての名前にコピーできます。