この章では、Solaris Secure Shell の構成オプションについて説明します。この章の内容は次のとおりです。
Solaris Secure Shell を構成する手順については、第 19 章Solaris Secure Shell の使用 (手順)を参照してください。
Solaris Secure Shell デーモン (sshd) は通常、ネットワークサービスが開始されるブート時に起動されます。デーモンは、クライアントからの接続を待機します。Solaris Secure Shell セッションは、ssh、scp、または sftp コマンドが実行されると開始します。接続を受信するたびに、新しい sshd デーモンがフォークされます。フォークされたデーモンは、鍵の交換、暗号化、認証、コマンドの実行、およびクライアントとのデータ交換を行います。Secure Shell セッションの特性は、クライアント構成ファイルとサーバー構成ファイルによって決定されます。コマンド行引数は、構成ファイルの設定より優先されます。
クライアントとサーバーは、相互に認証する必要があります。認証に成功したあと、ユーザーはコマンドを遠隔で実行でき、ホスト間でデータをコピーできます。
サーバー側の sshd デーモンの動作は、/etc/ssh/sshd_config ファイルのキーワードを設定することで変更できます。たとえば、sshd_config ファイルにより、サーバーにアクセスするときに使用する認証タイプを変更できます。サーバー側の動作は、sshd デーモンを起動するときに、コマンド行オプションによって変更することもできます。
クライアント側の動作は、Solaris Secure Shell のキーワードで変更できます。キーワードの優先順位は次のとおりです。
コマンド行オプション
ユーザーの構成ファイル (~/.ssh/config)
システム全体の構成ファイル (/etc/ssh/ssh_config)
たとえば、aes128–ctr を優先しているシステム全体の Ciphers の設定を上書きするには、コマンド行に -c aes256–ctr,aes128-ctr,arcfour のように指定します。これで、最初の暗号化方式 aes256–ctr が優先されるようになります。
Solaris Secure Shell の v1 のプロトコルと v2 のプロトコルは両方とも、クライアントのユーザーとホストの認証およびサーバーのホスト認証をサポートしています。両プロトコルは、Solaris Secure Shell セッションの保護のためにセッション暗号化鍵の交換を必要とします。各プロトコルには、認証と鍵の交換の方式がいくつかあります。その中には、任意のものもあります。Solaris Secure Shell は、多数のクライアント認証メカニズムをサポートしています (表 19–1 参照)。サーバーは、既知のホスト公開鍵を使用して認証されます。
v1 のプロトコルでは、Solaris Secure Shell は、パスワードによるユーザー認証をサポートしています。v1 のプロトコルは、ユーザー公開鍵と信頼されるホスト公開鍵による認証もサポートしています。サーバー認証は、ホスト公開鍵によって行われます。v1 のプロトコルでは、公開鍵はすべて RSA 鍵です。セッション鍵の交換には、定期的に再生成される短期サーバー鍵の使用が必要です。
v 2 のプロトコルでは、Solaris Secure Shell は、ユーザー認証と汎用対話型認証をサポートしています。汎用対話型認証は、通常、パスワードを必要とします。v 2 のプロトコルは、ユーザー公開鍵および信頼されるホスト公開鍵による認証もサポートしています。鍵は、RSA の場合と DSA の場合があります。セッション鍵の交換は、サーバー認証手順で署名される Diffie-Hellman 短期鍵の交換で構成されます。さらに、Solaris Secure Shell は認証に GSS 資格を使用することもできます。
Solaris Secure Shell で認証のために GSS-API を使用するには、サーバーが GSS-API のアクセプタの資格を持ち、クライアントが GSS-API のイニシエータの資格を持つ必要があります。mech_dh および mech_krb5 がサポートされています。
mech_dh では、サーバーは、root が keylogin コマンドを実行すると、GSS-API アクセプタの資格を持ちます。
mech_krb5 では、サーバーは、サーバーに対応するホスト主体が /etc/krb5/krb5.keytab で有効なエントリを持つと、GSS-API アクセプタの資格を持ちます。
クライアントは、次のどちらかによって、mech_dh に対するイニシエータの資格を持ちます。
keylogin コマンドが実行された。
pam_dhkeys モジュールが pam.conf ファイルで使用されている。
クライアントは、次のどちらかによって、mech_krb5 に対するイニシエータの資格を持ちます。
kinit コマンドが実行された。
pam_krb5 モジュールが pam.conf ファイルで使用されている。
Secure RPC での mech_dh の使用方法については、第 16 章認証サービスの使用 (手順)を参照してください。mech_krb5 の使用方法については、第 21 章Kerberos サービスについてを参照してください。メカニズムの詳細については、mech(4) および mech_spnego(5) のマニュアルページを参照してください。
認証が完了すると、ユーザーは通常、シェルまたはコマンド実行を要求して Solaris Secure Shell を使用します。ユーザーは、ssh のオプションを使用して、要求を行うことができます。要求には、擬似端末の配置、X11 または TCP/IP の接続の転送、セキュリティー保護された接続上での ssh-agent 認証プログラムの有効化などがあります。
ユーザーセッションの基本手順は次のとおりです。
ユーザーがシェルまたはコマンドの実行を要求し、セッションモードを開始します。
セッションモードでは、クライアント側では、データは端末を通して送受信されます。また、サーバー側ではシェルまたはコマンドを介して送受信されます。
データの転送が完了すると、ユーザープログラムは終了します。
既存の接続を除いて、すべての X11 接続と TCP/IP 接続の転送を停止します。既存の X11 接続と TCP/IP 接続は、開いたままです。
サーバーは、終了状態のメッセージをクライアントに送信します。開いたままになっていた転送先のポートなど、すべての接続が切断されると、クライアントはサーバーへの接続を切断します。その後、クライアントが終了します。
Solaris Secure Shell セッションの特性は、構成ファイルで変更できます。構成ファイルに対しては、コマンド行オプションを使用することで、ある程度優先することができます。
ほとんどの場合、Solaris Secure Shell セッションのクライアント側の特性は、システム全体の構成ファイル (/etc/ssh/ssh_config) によって決定されます。ユーザーの構成ファイル (~/.ssh/config) は、 ssh_config ファイル内の設定より優先されます。さらに、コマンド行での指定は、これらの構成ファイルより優先されます。
サーバーの /etc/ssh/sshd_config ファイル内の設定によって、クライアント側のどの要求がサーバーによって許可されるかが決まります。サーバー構成の設定の一覧については、「Solaris Secure Shell でのキーワード」を参照してください。詳細は、sshd_config(4) のマニュアルページを参照してください。
クライアントの構成ファイルのキーワードは、「Solaris Secure Shell でのキーワード」 に一覧表示されています。キーワードにデフォルト値がある場合は、その値が指定されます。これらのキーワードについては、ssh(1)、scp(1)、sftp(1)、および ssh_config(4) のマニュアルページに詳細を記載しています。アルファベット順のキーワードと相当するコマンド行の優先指定の一覧については、表 20–8 を参照してください。
サーバー側の Solaris Secure Shell セッションの特性は、/etc/ssh/sshd_config ファイルによって管理されます。サーバーの構成ファイルのキーワードは、「Solaris Secure Shell でのキーワード」 に一覧表示されています。キーワードにデフォルト値がある場合は、その値が指定されます。キーワードの詳細については、sshd_config(4) のマニュアルページを参照してください。
次の表は、キーワードおよびそのデフォルト値 (存在する場合) の一覧です。キーワードはアルファベット順になっています。クライアント側のキーワードは、ssh_config ファイルにあります。サーバーに適用されるキーワードは、sshd_config ファイルにあります。両方のファイルで設定されているキーワードもあります。キーワードが 1 つのプロトコルのバージョンにのみ適用される場合には、そのバージョンが記載されています。
表 20–1 Solaris Secure Shell 構成ファイルでのキーワード (A から Escape まで)
キーワード |
デフォルト値 |
場所 |
プロトコル |
---|---|---|---|
デフォルトなし |
サーバー | ||
yes |
サーバー | ||
デフォルトなし |
サーバー | ||
~/.ssh/authorized_keys |
サーバー | ||
/etc/issue |
サーバー | ||
no |
クライアント | ||
デフォルトなし |
クライアント | ||
yes |
クライアント | ||
クライアント |
v1 |
||
両方 |
v2 |
||
デフォルトなし |
クライアント | ||
0 |
サーバー |
v2 |
|
3 |
サーバー |
v2 |
|
yes |
両方 | ||
デフォルトなし |
クライアント | ||
1 |
クライアント | ||
デフォルトなし |
サーバー | ||
デフォルトなし |
サーバー | ||
デフォルトなし |
クライアント | ||
~ |
クライアント |
表 20–2 Solaris Secure Shell 構成ファイルでのキーワード (Fall から Local まで)
キーワード |
デフォルト値 |
場所 |
プロトコル |
---|---|---|---|
no |
クライアント | ||
no |
クライアント | ||
no |
クライアント | ||
no |
両方 | ||
/etc/ssh/ssh_known_hosts |
クライアント | ||
yes |
両方 |
v2 |
|
no |
クライアント |
v2 |
|
yes |
両方 |
v2 |
|
no |
クライアント |
v2 |
|
* 詳細については、「Solaris Secure Shell でのホスト固有のパラメータ」を参照してください。 |
クライアント | ||
no |
両方 |
v2 |
|
no |
サーバー |
v2 |
|
/etc/ssh/ssh_host_key |
サーバー |
v1 |
|
HostKey |
/etc/ssh/host_rsa_key、/etc/ssh/host_dsa_key |
サーバー |
v2 |
ssh-rsa、ssh-dss |
クライアント |
v2 |
|
デフォルトなし |
クライアント |
v2 |
|
~/.ssh/identity |
クライアント |
v1 |
|
IdentityFile |
~/.ssh/id_dsa、~/.ssh/id_rsa |
クライアント |
v2 |
yes |
サーバー | ||
yes |
サーバー | ||
yes |
両方 | ||
yes |
両方 | ||
3600 (秒) |
サーバー | ||
デフォルトなし |
サーバー | ||
デフォルトなし |
クライアント |
表 20–3 Solaris Secure Shell 構成ファイルでのキーワード (Login から R まで)
キーワード |
デフォルト値 |
場所 |
プロトコル |
---|---|---|---|
600 (秒) |
サーバー | ||
info |
両方 | ||
yes |
サーバー | ||
両方 |
v2 |
||
6 |
サーバー | ||
3 |
サーバー | ||
10:30:60 |
サーバー | ||
no |
クライアント | ||
3 |
クライアント | ||
yes |
サーバー |
v2 |
|
yes |
両方 | ||
no |
サーバー | ||
no |
サーバー | ||
no |
サーバー | ||
gssapi-keyex、gssapi-with-mic、hostbased、publickey、keyboard-interactive、password |
クライアント |
v2 |
|
22 |
両方 | ||
no |
サーバー | ||
2 |
両方 | ||
デフォルトなし |
クライアント | ||
yes |
両方 |
v2 |
|
デフォルトなし |
クライアント | ||
no |
両方 |
v1 |
|
no |
両方 |
v1 |
|
no |
両方 |
v1 |
表 20–4 Solaris Secure Shell 構成ファイルでのキーワード (S から X まで)
キーワード |
デフォルト値 |
場所 |
プロトコル |
---|---|---|---|
768 |
サーバー | ||
ask |
クライアント | ||
yes |
サーバー | ||
sftp /usr/lib/ssh/sftp-server |
サーバー | ||
auth |
サーバー | ||
no 非推奨として無視される |
サーバー | ||
yes |
両方 |
v2 |
|
デフォルトなし |
クライアント | ||
~/.ssh/known_hosts |
クライアント | ||
no |
サーバー | ||
yes |
サーバー | ||
10 |
サーバー | ||
yes |
サーバー | ||
/usr/openwin/bin/xauth |
両方 |
ローカルホストごとに異なる Solaris Secure Shell 特性を使用すると便利な場合、システム管理者は適用される /etc/ssh/ssh_config ファイルにホストまたはその正規表現形式に従って別々のパラメータセットを定義できます。ファイル内のエントリを、Host キーワードでグループ化してください。Host キーワードを使用しない場合、クライアント構成ファイル内のエントリは、ユーザーが使用しているローカルホストに適用されます。
次の Solaris Secure Shell キーワードが sshd_config ファイルに存在しないときは、 /etc/default/login ファイルの相当するエントリから値を取得します。
/etc/default/login のエントリ |
sshd_config のキーワードと値 |
---|---|
PermitRootLogin=without-password |
|
#CONSOLE=* |
PermitRootLogin=yes |
PermitEmptyPasswords=no |
|
PASSREQ=NO |
PermitEmptyPasswords=yes |
#PASSREQ |
PermitEmptyPasswords=no |
LoginGraceTime=secs |
|
#TIMEOUT |
LoginGraceTime=300 |
password および keyboard-interactive 認証方式にのみ適用される |
次の変数は、ユーザーのログインシェルから初期化スクリプトで設定され、sshd デーモンによってその値が使用されます。変数が設定されていない場合には、デーモンはデフォルト値を使用します。
SHELL 環境変数の設定を制御します。デフォルトは ALTSHELL=YES で、sshd デーモンはユーザーのシェルの値を使用します。ALTSHELL=NO の場合、SHELL の値は設定されません。
root に対する PATH 環境変数の設定を制御します。値が設定されていない場合、デフォルトのパスは /usr/sbin:/usr/bin になります。
詳細は、login(1) および sshd(1M) のマニュアルページを参照してください。
ホスト間の通信を安全に行うには、各ローカルホストの /etc/ssh/ssh_known_hosts ファイルにサーバーの公開鍵を格納する必要があります。 /etc/ssh/ssh_known_hosts ファイルを更新するときに、スクリプトを使用することもできますが、セキュリティーが大幅に低下するため、使用しないことを強くお勧めします。
/etc/ssh/ssh_known_hosts ファイルを配布するときは、次のようなセキュリティー保護されたメカニズムで行う必要があります。
Solaris Secure Shell、IPsec、または Kerberos を使用した ftp などのセキュリティー保護された接続を使用して、既知の信頼できるマシンから配布する
システムインストール時に配布する
known_hosts ファイルに偽の公開鍵を挿入してアクセス権を取得しようとする侵入者がいる可能性をなくすには、ssh_known_hosts ファイルの既知の信頼できる入手先として、Solaris JumpStart サーバーを使用します。ssh_known_hosts ファイルは、インストール中に配布できます。あとで、scp コマンドを使用するスクリプトを使用して、最新バージョンを取り込むこともできます。この方法は、JumpStart サーバーから得た公開鍵がすでに各ホストに保管されているため安全です。
Solaris Secure Shell は、Solaris の主要パッケージと次のパッケージに依存します。
SUNWgss – Generic Security Service (GSS) ソフトウェアを含みます
SUNWtcpd – TCP ラッパーを含みます
SUNWopenssl-libraries – OpenSSL ライブラリを含みます
SUNWzlib – zip 圧縮ライブラリを含みます
次のパッケージによって Solaris Secure Shell がインストールされます。
SUNWsshr – ルート (/) ディレクトリのクライアントファイルおよびユーティリティーを含みます
SUNWsshdr – ルート (/) ディレクトリのサーバーファイルおよびユーティリティーを含みます
SUNWsshcu – /usr ディレクトリの共通ソースファイルを含みます
SUNWsshdu – /usr ディレクトリのサーバーファイルを含みます
SUNWsshu – /usr ディレクトリのクライアントファイルおよびユーティリティーを含みます
インストール後システムを再起動すると、sshd デーモンが実行されます。デーモンは、そのシステム上でホスト鍵を作成します。sshd デーモンを実行する Solaris システムが Solaris Secure Shell サーバーです。
次の表は、重要な Solaris Secure Shell ファイルと推奨されるファイルアクセス権を示します。
表 20–5 Solaris Secure Shell ファイル
ファイル名 |
説明 |
推奨アクセス権と所有者 |
---|---|---|
sshd (Solaris Secure Shell デーモン) の構成データを含みます。 |
-rw-r--r-- root |
|
ホスト非公開鍵 (v1) を含みます。 |
-rw------- root |
|
ホスト非公開鍵 (v2) を含みます。 |
-rw------- root |
|
ホスト公開鍵を含みます。/etc/ssh/ssh_host_rsa_key.pub など。ホスト鍵をローカル known_hosts ファイルにコピーするときに使用します。 |
-rw-r--r-- root |
|
Solaris Secure Shell デーモン sshd のプロセス ID を含みます。複数のデーモンが実行されている場合は、起動された最後のデーモンを含みます。 |
-rw-r--r-- root |
|
ユーザーアカウントへのログインが許可されているユーザーの公開鍵を保持します。 |
-rw-r--r-- username |
|
このクライアントがセキュリティー保護された通信を行うことのできるすべてのホストのホスト公開鍵を含みます。このファイルはシステム管理者が管理します。 |
-rw-r--r-- root |
|
このクライアントがセキュリティー保護された通信を行うことのできるすべてのホストのホスト公開鍵を含みます。このファイルは自動的に管理されます。ユーザーが未知のホストに接続すると、遠隔ホスト鍵がファイルに追加されます。 |
-rw-r--r-- username |
|
対応する sshd_config パラメータが設定されていないときの、sshd デーモンのデフォルトを指定します。 |
-r--r--r-- root |
|
このファイルが存在する場合、sshd デーモンは root のログインのみを許可します。このファイルの内容は、ログインしようとするユーザーに対して表示されます。 |
-rw-r--r-- root |
|
ホスト名とユーザー名のペアを含みます。ユーザーは、対応するホストにパスワードを使用しないでログインできます。このファイルは、rlogind デーモンおよび rshd デーモンでも使用されます。 |
-rw-r--r-- username |
|
ホスト名とユーザー名のペアを含みます。ユーザーは、対応するホストにパスワードを使用しないでログインできます。このファイルは、ほかのユーティリティーでは使用されません。詳細については、sshd(1M) のマニュアルページの「FILES」節を参照してください。 |
-rw-r--r-- username |
|
.rhosts 認証で使用されるホストを含みます。このファイルは、rlogind デーモンおよび rshd デーモンでも使用されます。 |
-rw-r--r-- root |
|
ホストに基づく認証で使用されるホストを含みます。このファイルは、ほかのユーティリティーでは使用されません。 |
-rw-r--r-- root |
|
ログイン時の初期割り当てを含みます。デフォルトでは、このファイルは読み取られません。このファイルを読み取るには、sshd_config ファイルの PermitUserEnvironment キーワードが yes に設定されている必要があります。 |
-rw-r--r-- username |
|
ユーザーシェルが起動する前に実行される初期化ルーチンを含みます。初期化ルーチンの例については、sshd のマニュアルページを参照してください。 |
-rw-r--r-- username |
|
システム管理者が用意したホスト固有の初期化ルーチンを含みます。 |
-rw-r--r-- root |
|
クライアントシステムでのシステム設定を構成します。 |
-rw-r--r-- root |
|
ユーザーの設定を構成します。システム設定より優先されます。 |
-rw-r--r-- username |
次の表は、キーワードまたはコマンドオプションが優先される Solaris Secure Shell ファイルの一覧です。
表 20–6 優先される Solaris Secure Shell ファイルの場所
ファイル名 |
キーワードの優先指定 |
コマンド行の優先指定 |
---|---|---|
|
ssh -F config-file scp -F config-file |
|
|
ssh -F config-file |
|
/etc/ssh/host_dsa_key |
HostKey |
|
IdentityFile |
ssh -i id-file scp -i id-file |
|
AuthorizedKeysFile |
|
|
GlobalKnownHostsFile |
|
|
UserKnownHostsFile IgnoreUserKnownHosts |
|
次の表は、主要な Solaris Secure Shell コマンドの要約です。
表 20–7 Solaris Secure Shell でのコマンド
次の表は、Solaris Secure Shell のキーワードに優先するコマンドオプションの一覧です。キーワードは、ssh_config ファイルおよび sshd_config ファイルで指定します。
表 20–8 Solaris Secure Shell のキーワードに相当するコマンド行
キーワード |
ssh コマンド行の優先指定 |
scp コマンド行の優先指定 |
---|---|---|
BatchMode |
|
scp -B |
BindAddress |
ssh -b bind-addr |
scp -a bind-addr |
Cipher |
ssh -c cipher |
scp -c cipher |
Ciphers |
ssh -c cipher-spec |
scp -c cipher-spec |
Compression |
ssh -C |
scp -C |
DynamicForward |
ssh -D SOCKS4-port |
|
EscapeChar |
ssh -e escape-char |
|
ForwardAgent |
ssh -A (有効) ssh -a (無効) |
|
ForwardX11 |
ssh -X (有効) ssh -x (無効) |
|
GatewayPorts |
ssh -g |
|
IPv4 |
ssh -4 |
scp -4 |
IPv6 |
ssh -6 |
scp -6 |
LocalForward |
ssh -L localport:remotehost:remoteport |
|
MACS |
ssh -m mac-spec |
|
Port |
ssh -p port |
scp -P port |
Protocol |
ssh -1 (v1 のみ) ssh -2 (v2 のみ) |
|
RemoteForward |
ssh -R remoteport:localhost:localport |
|