次の手順によって公開鍵システムが設定され、クライアントの公開鍵がサーバー上での認証に使用できるようになります。また、ユーザーは、公開鍵と非公開鍵のペアを作成する必要があります。
この手順での「クライアント」および「ローカルホスト」という用語は、ユーザーが ssh コマンドを入力するマシンを指しています。「サーバー」および「リモートホスト」という用語は、クライアントがアクセスを試みるマシンを指しています。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
クライアントで、ホストに基づく認証を有効にします。
クライアントの構成ファイル /etc/ssh/ssh_config で、次のエントリを入力します。
HostbasedAuthentication yes |
このファイルの構文については、ssh_config(4) のマニュアルページを参照してください。
サーバーで、ホストに基づく認証を有効にします。
サーバーの構成ファイル /etc/ssh/ssh_config で、同じエントリを入力します。
HostbasedAuthentication yes |
このファイルの構文については、sshd_config(4) のマニュアルページを参照してください。
サーバーで、クライアントが信頼されるホストとして認識されるようにするファイルを構成します。
詳細については、sshd(1M) のマニュアルページの「FILES」のセクションを参照してください。
サーバーで、sshdデーモンが信頼されるホストのリストにアクセスできるようにします。
/etc/ssh/sshd_config ファイルで、IgnoreRhosts を no に設定します。
## sshd_config IgnoreRhosts no |
使用するサイトの Solaris Secure Shell のユーザーが両方のホストでアカウントを持つようにします。
クライアントの公開鍵をサーバー上に置くために、次のどちらかを行います。
サーバー上の sshd_config ファイルを変更後、クライアントの公開ホスト鍵を ~/.ssh/known_hosts ファイルに追加するようにユーザーに指示します。
## sshd_config IgnoreUserKnownHosts no |
ユーザーへの指示については、「Solaris Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法」を参照してください。
クライアントの公開鍵をサーバーにコピーします。
ホスト鍵は、/etc/ssh ディレクトリに格納されます。鍵は、通常、最初のブート時に sshd デーモンによって生成されます。
サーバー上の /etc/ssh/ssh_known_hosts ファイルに鍵を追加します。
クライアントで、バックスラッシュなしで 1 行に次のコマンドを入力します。
# cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"' |
プロンプトが表示されたら、ログインパスワードを入力します。
ファイルがコピーされると、「Host key copied」というメッセージが表示されます。
/etc/ssh/ssh_known_hosts ファイルの各行は、スペースで区切られたフィールドで構成されています。
hostnames algorithm-name publickey comment |
/etc/ssh/ssh_known_hosts ファイルを編集して、コピーしたエントリの最初のフィールドとして RemoteHost を追加します。
## /etc/ssh/ssh_known_hosts File RemoteHost <copied entry> |
次の例では、各ホストがサーバーおよびクライアントとして構成されます。一方のホストのユーザーが、他方のホストへの ssh 接続を開始できます。次の構成によって、各ホストがサーバーおよびクライアントになります。
ホストごとに、 Solaris Secure Shell 構成ファイルに次のエントリを入力します。
## /etc/ssh/ssh_config HostBasedAuthentication yes # ## /etc/ssh/sshd_config HostBasedAuthentication yes IgnoreRhosts no |
ホストごとに、shosts.equiv ファイルに他方のホストに対するエントリを入力します。
## /etc/ssh/shosts.equiv on machine2 machine1 |
## /etc/ssh/shosts.equiv on machine1 machine2 |
各ホストの公開鍵を、他方のホストの /etc/ssh/ssh_known_hosts ファイルに入力します。
## /etc/ssh/ssh_known_hosts on machine2 … machine1 |
## /etc/ssh/ssh_known_hosts on machine1 … machine2 |
ユーザーは、両方のホストにアカウントを持ちます。
## /etc/passwd on machine1 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh |
## /etc/passwd on machine2 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh |