ホスト鍵がユーザ固有のホスト鍵ディレクトリに見つからない場合は、次に、UNIX では /etc/ssh2/hostkeys
ディレクトリから、Windows では "%ALLUSERSPROFILE%\Application Data\SSH\HostKeys
" ディレクトリから検索されます。ホスト鍵ファイルは、システム全体のディレクトリに自動的に保存されるわけではなく、システム管理者 (root
) が手動で更新するか、または SSH Tectia Manager を使用して更新する必要があります。
ホスト鍵の配布に SSH Tectia Manager が使用されていない場合は、下の手順に従って手動でホスト鍵を配布できます。この手順では UNIX ファイルのパスを使用していますが、Windows にも適用できます。単純に、UNIX のパスを対応する Windows のパスに置き換えてください。
ハッシュ化されたリモート ホスト鍵を取得し、システム全体の保存場所に保存するには、以下の手順を実行してください。
クライアント側のユーザの中で、その $HOME/.ssh2/hostkeys
がシステム全体の /etc/ssh2/hostkeys
の基礎になるユーザを選択します。鍵をシステム全体の場所に保存するには管理者権限が必要なため、このユーザは管理者権限を持っている必要があります。
また、一部のサーバでホスト鍵が変更された場合も、後で同じユーザ アカウントを使用してシステム全体の /etc/ssh2/hostkeys
を管理する必要があります。この処理では、そのユーザのホスト鍵を $HOME/.ssh2/hostkeys
ディレクトリに保存した後、この変更をシステム全体の /etc/ssh2/hostkeys
ディレクトリに複製します。
初めて鍵を取得するときは $HOME/.ssh2/hostkeys
ディレクトリが空であること、また保存されたホスト鍵が意図したものであることを確認します。
後で新しい鍵を取得する必要がある場合は、同じ $HOME/.ssh2/hostkeys/salt
ファイルを使用する必要があります。
SSH Tectia Client をリモート サーバに接続し、フィンガープリントを検証して、鍵を保存します。
存在するリモート サーバの台数分、この手順を繰り返します。ユーザ認証を完了する必要はなく、SecureShell 接続の鍵の交換部分だけでよいことに注意してください。
システム全体の場所で管理するすべてのホスト鍵を取得したら、たとえば以下のコマンドを実行することによって、それらの鍵をシステム全体の場所に置きます。
# 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)を参照してください。
従来のリモート ホスト鍵を取得し、システム全体の保存場所に保存するにはするには、以下の手順を実行してください。
サーバ側のユーザとして、/etc/ssh2/hostkey.pub
ファイルを key_<port>_<hostname>.pub
として、サーバからクライアント上の /etc/ssh2/hostkeys/
ディレクトリにコピーします。
この操作はサーバ上の非特権ユーザとして実行できますが、クライアント上では特権ユーザ (root
など) である必要があります。
ファイルを転送する場合や、転送の後にフィンガープリントの一致を検証する場合は、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
を、これらの異なるすべての名前にコピーできます。