SSH は、リモートコンピュータに安全にアクセスするための UNIX ベースのコマンド群兼プロトコルです。 電子証明書とパスワードの暗号化を利用して、接続の両端で認証を行うことにより、ネットワーク上のクライアントとサーバーの通信を保護します。 また、RSA 公開鍵暗号化を使って、接続と認証の管理を行います。 telnet やその他のシェルベースの通信方式より安全性が高く、Web サーバーやリモートシステムの管理に使用されます。
2 つの N1 Service Provisioning System 4.1 アプリケーション間にSSH 接続を設定した場合、ダウンストリームのアプリケーションは手動で起動する必要はありません。アップストリームのアプリケーションによって必要に応じて自動的に起動されます。その後、使用されている間は継続して動作しますが、一定の時間使用されていない場合、自動的に停止します。この一連の動作は、SSH 独特のものであり、その他の接続タイプでは見られません。
SSH 接続を使用する場合は、ダウンストリームのアプリケーションを手動で起動しないでください。 たとえば、Local Distributor が SSH を使って Remote Agent と接続するように設定した場合、Remote Agent を手動では起動しないでください。 Local Distributer は、必要に応じて Remote Agent を自動的に起動します。Remote Agent は使用されている間は継続して作動します。Local Distributor は、一定の時間使用されていない場合、Remote Agent を自動的に停止します。この時間は設定可能です。
SSH の構成時に、空のパスワードキーを使用するか、ssh-agent を使用するかを選択できます。 空のパスワードキーを使用する構成の場合、生成された SSH 非公開鍵は空のパスワード付きで格納されます。 よって、この非公開鍵には、パスワードなしでアクセスできます。 公開鍵を信頼するその他のマシンと SSH を使って通信するとき、パスワードプロンプトは表示されません。 ssh-agent を使用する場合、生成された非公開鍵はセキュリティ保護されたパスワード付きで安全なメディアに格納されます。 別のマシンと通信するときは、ssh-agent を起動し、安全なメディアから非公開鍵をアップロードして、パスワードを入力します。 非公開鍵はファイルシステムには格納されず、ssh-agent プロセスのメモリーに格納されます。
空のパスワードを使用する場合、非公開鍵はパスワードなしでマシンのファイルシステムに格納されます。 この非公開鍵は、SSH 通信を開始するすべてのマシン上に存在しなければなりません。 N1 Service Provisioning System 4.1 の場合、SSH を使ってダウンストリームのアプリケーションに接続するすべての Master Server と Local Distributor に、非公開鍵を配布する必要があります。 この方法では、高いセキュリティ効果は期待できません。
ssh-agent を使用する場合、非公開鍵は Master Server 上でしか時実行されない ssh-agent によって格納されます。 ネットワーク上のその他のマシンには、公開鍵が配布されます。 認証を必要とする SSH アプリケーションは、ssh-agent を使って認証を行います。 中間 SSH 接続を、Master Server 上で認証のために実行される ssh-agent へ Local Distributer からのプロキシ設定が可能になるように設定するときには、エージェントの転送機能を有効にする必要があります。 Local Distributor は、エージェントの転送機能を使って、ダウンストリームの Local Distributor や Remote Agent に認証情報を渡します。 この方法のほうが、先ほどの方法よりセキュリティの面で優れています。
N1 Service Provisioning System 4.1 は、次の SSH 機能を要求します。
ssh によるリモートコマンド呼び出し
公開 - 非公開鍵認証
BatchMode yes (ユーザーの介入なしで ssh コマンドを呼び出す機能) のサポート
ssh-agent を使用する場合、次の SSH 機能が必要になります。
ssh-agent のサポート
SSH の ssh-agent 転送機能のサポート。 OpenSSH での -A オプションの使用
SSH 接続を行うマシンでは、次のような便利な機能を利用できます。ただし、これらの機能は必須ではありません。
リモートコマンド呼び出し実行時の tty の強制割り当て。 OpenSSH での -t オプションの使用
ssh エージェントの強制終了。 OpenSSH での ssh-agent コマンドの -k オプションの使用
高度なセキュリティを実現する RSA 鍵の生成。 OpenSSH での -t rsa の使用
次のチェックリストを使って、SSH の実装が N1 Service Provisioning System 4.1 の要件を満たしているかどうかを確認します。
ssh-keygen コマンドは、SSH 呼び出しの認証に使用できる公開鍵と非公開鍵のペアを生成する必要がある
追加情報なしでホストキーの交換やパスワードの取得が可能な指定のホスト上で、認証用非公開鍵がパスワードなしで (または空のパスワード付きで) 生成された場合、次の ssh コマンドを実行できなければならない
% ssh –o `BatchMode yes' hostname |
パスワード付きで生成された非公開鍵を使ってアップロードされたホストで、ssh-agent を実行して、host1、host2 を経て host3 にホップしたとする。この host3 上で、追加情報なしでホストキーの交換やパスワードの取得が可能な場合、次の ssh コマンドを実行できなければならない
% ssh –o `BatchMode yes' –A host1 ssh –o `BatchMode yes' –A host2 ssh –o `BatchMode yes' host3 |
ssh コマンドを使って、標準入力ストリーム、標準出力ストリーム、標準エラーストリームを、リモートマシンで実行されるコマンドに正常にパイプできなければならない
ssh-add コマンドを使って、パスワード付きの非公開鍵を認証用として ssh-agent にアップロードできなければならない