ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法
Secure Shell の公開鍵のパスフレーズを変更する方法
Secure Shell を使用してリモートホストにログインする方法
Secure Shell でのパスワードのプロンプトを減らす方法
Secure Shell を使用してファイルをコピーする方法
22. Kerberos エラーメッセージとトラブルシューティング
Secure Shell では、デフォルトでは、ホストに基づく認証と両方のプロトコルの使用は無効になっています。これらのデフォルトを変更するには、管理者の介入が必要です。また、ポート転送が機能するようにするためにも、管理者の介入が必要です。
次のタスクマップでは、Secure Shell の構成手順を示します。
|
次の手順によって公開鍵システムが設定され、クライアントの公開鍵がサーバー上での認証に使用できるようになります。また、ユーザーは、公開鍵と非公開鍵のペアを作成する必要があります。
この手順での「クライアント」および「ローカルホスト」という用語は、ユーザーが ssh コマンドを入力するマシンを指しています。「サーバー」および「リモートホスト」という用語は、クライアントがアクセスを試みるマシンを指しています。
始める前に
root 役割になっている必要があります。
クライアントの構成ファイル /etc/ssh/ssh_config で、次のエントリを入力します。
HostbasedAuthentication yes
このファイルの構文については、ssh_config(4) のマニュアルページを参照してください。
サーバーの構成ファイル /etc/ssh/ssh_config で、同じエントリを入力します。
HostbasedAuthentication yes
このファイルの構文については、sshd_config(4) のマニュアルページを参照してください。
詳細については、sshd(1M) のマニュアルページの「FILES」のセクションを参照してください。
client-host
client-host
/etc/ssh/sshd_config ファイルで、IgnoreRhosts を no に設定します。
## sshd_config IgnoreRhosts no
## sshd_config IgnoreUserKnownHosts no
ユーザーへの指示については、「Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法」を参照してください。
ホスト鍵は、/etc/ssh ディレクトリに格納されます。鍵は、通常、最初のブート時に sshd デーモンによって生成されます。
クライアントで、バックスラッシュなしで 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 File RemoteHost <copied entry>
例 17-1 ホストに基づく認証を設定する
次の例では、各ホストがサーバーおよびクライアントとして構成されます。一方のホストのユーザーが、他方のホストへの ssh 接続を開始できます。次の構成によって、各ホストがサーバーおよびクライアントになります。
ホストごとに、 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
ポート転送によって、ローカルポートをリモートホストに転送することができるようになります。指定すると、ソケットはローカル側で、そのポートを待機します。また、リモート側のポートを指定することもできます。
始める前に
root 役割になっている必要があります。
/etc/ssh/sshd_config ファイルで AllowTcpForwarding の値を yes に変更します。
# Port forwarding AllowTcpForwarding yes
remoteHost# svcadm restart network/ssh:default
永続的なサービスの管理については、『Oracle Solaris の管理: 一般的なタスク』の第 6 章「サービスの管理 (概要)」および svcadm(1M) のマニュアルページを参照してください。
remoteHost# /usr/bin/pgrep -lf sshd 1296 ssh -L 2001:remoteHost:23 remoteHost
この手順では、条件付きの Match ブロックを /etc/ssh/sshd_config ファイルのグローバルセクションのあとに追加します。Match ブロックのあとに続くキーワードと値のペアは、一致するものとして指定されたユーザー、グループ、ホスト、またはアドレスの例外を示しています。
始める前に
root 役割になっている必要があります。
それらの Match ブロックをグローバル設定のあとに配置します。
注 - このファイルのグローバルセクションには、デフォルト設定が一覧表示される場合もされない場合もあります。それらのデフォルトについては、sshd_config(4) のマニュアルページを参照してください。
TCP 転送の使用を許可すべきでないユーザーが含まれている場合があります。次の例では、グループ public のユーザーと、test で始まるユーザー名はすべて TCP 転送を使用できません。
## sshd_config file ## Global settings # Example (reflects default settings): # # Host * # ForwardAgent no # ForwardX11 no # PubkeyAuthentication yes # PasswordAuthentication yes # FallBackToRsh no # UseRsh no # BatchMode no # CheckHostIP yes # StrictHostKeyChecking ask # EscapeChar ~ Match Group public AllowTcpForwarding no Match User test* AllowTcpForwarding no
Match ブロックの構文については、sshd_config(4) のマニュアルページを参照してください。