Oracle Solaris では Secure Shell の 2 つの実装が提供されており、sunssh パッケージのレガシーの SunSSH 実装と、オプションの openssh パッケージの OpenSSH 実装です。Oracle Solaris の OpenSSH は、バージョン 7.2p2 に加えて Oracle Solaris 環境に特有の追加機能に基づいて構築されています。
SunSSH がデフォルトですが、新しい OpenSSH 実装に切り替えることができます。一度に使用できる実装は 1 つだけです。
![]() | 注意 - Oracle Solaris 11.3 SRU 5 からは、OpenSSH は、システム管理者からの積極的な注意が必要なバージョンにアップグレードされています。OpenSSH への Oracle Solaris の変更および OpenSSH への Oracle Solaris の追加機能を参照してください。 |
OpenSSH 7.1p1 への前回のアップグレード後、Oracle Solaris 11.3 では Secure Shell の openssh 実装が OpenSSH 7.2p2 にアップグレードされています。
このセクションの変更は、バージョン 7.1p1 に含まれています。
Oracle Solaris 11.3 SRU 5 からは、Secure Shell プロトコル 1 (v1) サポートは、サーバー側とクライアント側の両方で OpenSSH から削除されました。v1 のみをサポートするネットワークエンティティーは、ほとんどが古いネットワークルーターです。このようなデバイスには OpenSSH の Oracle Solaris 11.3 実装を使用して接続できなくなりました。ただし、Oracle Solaris 10 ユーザーは SunSSH を使用して、v1 を使用するシステムに引き続きアクセスできます。さらに、Oracle Solaris 11.3 ユーザーも SunSSH を使用して、v1 を使用するシステムに引き続きアクセスできます。
安全でないアルゴリズムを削除するように、暗号化規格および MAC のデフォルトセットが変更されました。Oracle Solaris 11.3 SRU 5 リリース以降、デフォルト構成で次の暗号化規格および MAC のみが有効になります。
Ciphers ---- chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com MACs ---- umac-64-etm@openssh.com umac-128-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com hmac-sha1-etm@openssh.com umac-64@openssh.com umac-128@openssh.com hmac-sha2-256 hmac-sha2-512 hmac-sha1
サポートされているすべての暗号化規格および MAC を一覧表示するには、次のコマンドを使用してください。
root@source# ssh -Q cipher root@source# ssh -Q MACs
詳細は、sshd_config(4) および ssh_config(4) のマニュアルページを参照してください。
diffie-hellman-group1-sha1 鍵交換は、もうセキュアでないと見なされているため、Secure Shell のクライアント側およびサーバー側の両方で無効になります。
サーバーが diffie-hellman-group1-sha1 のみをサポートする場合は、diffie-hellman-group-exchange-sha256 をサポートするようにそれらをアップグレードしてください。または、2 番目の選択肢として、diffie-hellman-group14-sha1 をサポートするバージョンに Oracle Solaris をアップグレードしてください。
ピアをアップグレードすることを選択できない場合、diffie-hellman-group-exchange-sha256、diffie-hellman-group14-sha1、または diffie-hellman-group-exchange-sha1 をサポートしないシステムに接続しているユーザーは、次のように diffie-hellman-group1-sha1 を有効にできます。
root@source# ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@system1
Secure Shell の OpenSSH 実装の場合、サーバー管理者は、セキュアでない鍵交換方式を明示的に有効化することで、セキュアな鍵交換方式をサポートしないシステムからのログインを許可できます。この行を /etc/ssh/sshd_config ファイルに追加してください。
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256
それから、Secure Shell サーバーを再起動します。
詳細については、Using OpenSSH with Legacy SSH Implementationsを参照してください。
ssh-dss および ssh-dss-cert-* ホストおよびユーザー鍵タイプは本質的に弱いため、実行時にデフォルトで無効になります。
公開鍵認証で ssh-dss 鍵を使用していた場合は、新しい ssh-rsa 鍵を作成し、既存の ssh-dss 鍵をすべての authorized_keys ファイルから削除してください。新しい鍵の作成手順については、Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法を参照してください。
ssh-rsa および ssh-dss ホスト鍵がまだ存在しない場合、svc:/network/ssh:default が両方を作成します。したがって、Oracle Solaris サーバーは通常 ssh-dss ホスト鍵と ssh-rsa 鍵を持ちます。まれに、サーバーに ssh-dss ホスト鍵だけがプロビジョニングされていた場合には、ssh_rsa ホスト鍵を追加してください。鍵を作成できない場合、ユーザーはこれらのサーバーに接続して ssh-dss 鍵タイプを有効にできます。
root@source# ssh -oHostKeyAlgorithms=+ssh-dss user@somehost
詳細については、Using OpenSSH with Legacy SSH Implementationsを参照してください。
sshd_config ファイルで UseDNS 値が指定されていない場合、UseDNS のデフォルト値は No です。以前のデフォルト値にはセキュリティー利点がありませんでした。
UseDNS 値が No であることは、ssh サービスを構成するときにホスト名を使用できないことを意味します。
2 つの選択肢があります。
sshd_config ファイルで明示的に UseDNS yes を指定できます。
次の例のように、sshd_config ファイルでホスト名の代わりに IP アドレスを使用できます。
sshd_config ファイルの Match ブロックセクションで、Host 条件の代わりに Address 条件を使用します。
たとえば、Match Host somehost.domain を Match Address 192.168.0.10 に置き換えます。
AllowUsers、AllowGroups、DenyUsers、および DenyGroups の sshd_config エントリで、ホスト名の代わりに IP アドレスを使用します。
たとえば、AllowUsers jsmith@somehost.domain を AllowUsers jsmith@192.168.0.10 に置き換えます。
/etc/ssh/shosts.equiv または ~/.shosts エントリで、ホスト名の代わりに IP アドレスを使用します。
たとえば、somehost.domain を 192.168.0.10 に置き換えます。
~/.ssh/authorized_keys エントリで、from オプションを指定するときにホスト名の代わりに IP アドレスを使用します。
たとえば、これを
from="somehost.domain" ssh-rsa AAAAB3...Q== jsmith@work
次と置き換えます
from="192.168.0.10" ssh-rsa AAAAB3...Q== jsmith@work
OpenSSH は TCP ラッパーをサポートしません。以前に TCP ラッパーによって適用されていた構成を保持するには、sshd_config ファイルを変更するかファイアウォールを使用する必要があります。
TCP ラッパーを使用していた場合は、ログインを許可または拒否するために /etc/hosts.allow または /etc/hosts.deny を使用していました。sshd_config ファイルで Match ブロックを使用して同等の構成を設定できます。
たとえば、10.163.0.0/16 サブネットからのログインのみを許可するため、TCP ラッパーを次のように設定していたとします。
root@jsmith-cz:~# cat /etc/hosts.allow sshd : 10.163. root@jsmith-cz:~# cat /etc/hosts.deny ALL : ALL
sshd_config ファイル内の次のエントリは、同等の制約を設定します。
Match Address *,!10.163.0.0/16 MaxAuthTries 0
別の選択肢は、ファイアウォールを構成してアクセスを制御することです。これらの例に似た設定をファイアウォールで適用できます。ファイアウォールアクセス制御は、ネットワーク接続がカーネル内で確立される前に発生します。
OpenSSH は、システムにインストール可能なオプションパッケージ openssh です。機能が openssh 実装に追加されていますが、OpenSSH プロジェクトとの互換性は維持されています。
次の Oracle Solaris 機能が openssh 実装に追加されました。
Secure Shell クライアントからのバナーメッセージの表示を無効にするために使用できる DisabledBanner キーワード。詳細は、ssh_config(4) のマニュアルページを参照してください。
PAM のサポート。
sunssh 実装内にある PAMServiceName および PAMServicePrefix キーワードは、openSSH 実装に移行されました。
Oracle Solaris 監査サポート。
書き込み不可のホームディレクトリで Xforwarding が機能します。
RFC 4462 で規定されている GSS-API 認証 Diffie-Hellman 鍵交換。
ホストに基づく認証のための役割のログインが可能です (PAM および sshd で適切に構成されている場合)。
OpenSSH の委任された資格は、資格がほかのプラットフォーム上に格納される方法とは異なる方法で Oracle Solaris に格納されます。
委任された資格を /tmp/krb5cc_101_WO4082 などのデフォルト以外の資格キャッシュに格納する OpenSSH プロジェクトとは異なり、Secure Shell の openssh 実装では、/tmp/krb5cc_101 などのデフォルトの資格キャッシュが使用されます。
デフォルトの資格キャッシュ内の資格は、Kerberos によって保護される NFS ファイルシステムにアクセスするために使用できます。
詳細は、Oracle Solaris 11.3 での Kerberos およびその他の認証サービスの管理を参照してください。
openssh IPS パッケージが導入されたため、Oracle Solaris では 4 つの Secure Shell パッケージが提供されます。
sunssh 実装のコンポーネント
openssh 実装のコンポーネント
2 つの実装が共有する Secure Shell ユーティリティー
SMF サービスおよび 2 つの実装が共有する Secure Shell システム構成ファイル
SunSSH および OpenSSH は次の Secure Shell システム構成ファイルを共有します。
/etc/ssh/ssh_config
/etc/ssh/sshd_config
/etc/ssh/moduli