https://www.openssh.com/txt/release-8.0 Security ======== セキュリティ This release contains mitigation for a weakness in the scp(1) tool and protocol (CVE-2019-6111): when copying files from a remote system to a local directory, scp(1) did not verify that the filenames that the server sent matched those requested by the client. This could allow a hostile server to create or clobber unexpected local files with attacker-controlled content. このリリースは, scp(1) ツールとプロトコルの問題 (CVE-2019-6111) の緩和を含んでいる: リモートのシステムからローカルのディレクトリにファイルをコピーする際に, scp(1) は, サーバが送信したファイル名がクライアントによって要求されたものと 一致するかどうかを検証していない. これを利用して, 悪意のあるサーバが攻撃者が 制御する内容で予期しないローカルファイルを作成したり変更する可能性がある. This release adds client-side checking that the filenames sent from the server match the command-line request, このリリースでサーバから送られたファイル名がコマンドラインの要求と 一致するかどうかのクライアント側でのチェックを追加する. The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. scp プロトコルは時代遅れで, 柔軟性がなく, 簡単に修正できない. ファイル転送には scp の代わりに sftp や rsync にようなより 現代的なプロトコルの利用を推奨する. Potentially-incompatible changes ================================ 潜在的に非互換な変更 This release includes a number of changes that may affect existing configurations: このリリースは既存の設定に影響するかもしれない変更がいくつか含まれている: * scp(1): Relating to the above changes to scp(1); the scp protocol relies on the remote shell for wildcard expansion, so there is no infallible way for the client's wildcard matching to perfectly reflect the server's. If there is a difference between client and server wildcard expansion, the client may refuse files from the server. For this reason, we have provided a new "-T" flag to scp that disables these client-side checks at the risk of reintroducing the attack described above. scp(1): 前述の変更に関係: scp プロトコルはリモートシェル上の ワイルドカード展開に依存している. そのため, クライアントの ワイルドカードの一致に対してサーバのそれを反映する絶対確実な 方法は存在しない. クライアントとサーバのワイルドカード展開が 異なる場合, クライアントはサーバからのファイルを拒否するかもしれない. このため, 我々は 新しい "-T" フラグを scp に提供する. これは, 前述した攻撃を再導入するリスクを承知の上でこれらのクライアント側の チェックを無効にする. * sshd(8): Remove support for obsolete "host/port" syntax. Slash- separated host/port was added in 2001 as an alternative to host:port syntax for the benefit of IPv6 users. These days there are establised standards for this like [::1]:22 and the slash syntax is easily mistaken for CIDR notation, which OpenSSH supports for some things. Remove the slash notation from ListenAddress and PermitOpen; bz#2335 sshd(8): 旧式の "host/port" 構文のサポートを除く. スラッシュ区切りの host/port は IPv6 ユーザのために host:port 構文の代替として 2001 年に 追加された. [::1]:22 のような確立した標準が最近は存在し, スラッシュ構文は OpenSSH でもサポートしている箇所がある CIDR 表記と間違えやすい. ListenAddress と PermitOpen から スラッシュ表記を除く; bz#2335 Changes since OpenSSH 7.9 ========================= OpenSSH 7.9 からの変更 This release is focused on new features and internal refactoring. このリリースは, 新しい機能と内部のリファクタリグに重点を置いている. New Features ------------ 新機能 * ssh(1), ssh-agent(1), ssh-add(1): Add support for ECDSA keys in PKCS#11 tokens. ssh(1), ssh-agent(1), ssh-add(1): PKCS#11 トークン中の ECDSA 鍵 のサポートを追加する. * ssh(1), sshd(8): Add experimental quantum-computing resistant key exchange method, based on a combination of Streamlined NTRU Prime 4591^761 and X25519. ssh(1), sshd(8): 実験的な量子コンピューティング耐性鍵交換法を 追加する. Streamlined NTRU 4591^761 と X25519 の組合せに基づく. * ssh-keygen(1): Increase the default RSA key size to 3072 bits, following NIST Special Publication 800-57's guidance for a 128-bit equivalent symmetric security level. ssh-keygen(1): デフォルトの RSA 鍵のサイズを 3072 ビットに増やす. 128 ビットの共通鍵暗号と同等のセキュリティレベルに対する NIST Special Publication 800-57 のガイダンスに従うため. * ssh(1): Allow "PKCS11Provider=none" to override later instances of the PKCS11Provider directive in ssh_config; bz#2974 ssh(1): ssh_config で PKCS11Provider 設定項目の後の設定を上書きするため "PKCS11Provider=none" を許可する; bz#2974 * sshd(8): Add a log message for situations where a connection is dropped for attempting to run a command but a sshd_config ForceCommand=internal-sftp restriction is in effect; bz#2960 sshd(8): sshd_config での ForceCommand=internal-sftp 制限が有効にも かかわらず, コマンドを走らせようとして接続が落ちる場合のログ メッセージを追加する; bz#2960 * ssh(1): When prompting whether to record a new host key, accept the key fingerprint as a synonym for "yes". This allows the user to paste a fingerprint obtained out of band at the prompt and have the client do the comparison for you. ssh(1): 新しいホスト鍵を記録するかどうかのプロンプトを出している場合に, 鍵の指紋を "yes" の同意語として受けつける. これにより, ユーザが 外部から得た指紋をペーストしてクライアントに比較させられる. * ssh-keygen(1): When signing multiple certificates on a single command-line invocation, allow automatically incrementing the certificate serial number. ssh-keygen(1): 単一のコマンドラインから複数の証明書に署名する場合, 証明書のシリアル番号を自動的に増加させられるようになる. * scp(1), sftp(1): Accept -J option as an alias to ProxyJump on the scp and sftp command-lines. scp(1), sftp(1): scp と sftp のコマンドラインで ProxyJump の エイリアスとして -J オプションを受けつける. * ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): Accept "-v" command-line flags to increase the verbosity of output; pass verbose flags though to subprocesses, such as ssh-pkcs11-helper started from ssh-agent. ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): 出力の冗長性を 増す "-v" コマンドラインオプションを受けつける. ssh-agent から 起動される ssh-pkcs11-helper の場合のように, サブプロセスへ 冗長オプションは渡される. * ssh-add(1): Add a "-T" option to allowing testing whether keys in an agent are usable by performing a signature and a verification. ssh-add(1): エージェント内で鍵が署名と検証の実行に利用できるかを テストすることを許す "-T" オプションを追加する. * sftp-server(8): Add a "lsetstat@openssh.com" protocol extension that replicates the functionality of the existing SSH2_FXP_SETSTAT operation but does not follow symlinks. bz#2067 sftp-server(8): 既存の SSH2_FXP_SETSTAT の機能と同等だがシンボリックリンクは 追従しない, "lsetstat@openssh.com" プロトコル拡張を追加する. * sftp(1): Add "-h" flag to chown/chgrp/chmod commands to request they do not follow symlinks. sftp(1): シンボリックリンクを追従しないように要求する "-h" フラグを chown/chgrp/chmod コマンドに追加する. * sshd(8): Expose $SSH_CONNECTION in the PAM environment. This makes the connection 4-tuple available to PAM modules that wish to use it in decision-making. bz#2741 PAM 環境で $SSH_CONNECTION を露出する. これにより, 意思決定に $SSH_CONNECTION を利用したい PAM モジュールが 接続 4タプル (訳注: source ip, ocsp URL, issuer name hash, serial number) を 利用できる. bz#2741 * sshd(8): Add a ssh_config "Match final" predicate Matches in same pass as "Match canonical" but doesn't require hostname canonicalisation be enabled. bz#2906 sshd(8): "Match canonical" と同じパスにマッチするが, ホスト名の 正規化が有効なことを要求しない "Match final" 述語を ssh_config に 追加する. bz#2906 * sftp(1): Support a prefix of '@' to suppress echo of sftp batch commands; bz#2926 sftp(1): sftp バッチコマンドのエコーを抑制する '@' プレフィックスを サポートする. * ssh-keygen(1): When printing certificate contents using "ssh-keygen -Lf /path/certificate", include the algorithm that the CA used to sign the cert. ssh-keygen(1): "ssh-keygen -Lf /path/certificate" を用いて 証明書の内容を出力する場合に, 証明書に署名をした CA が用いた アルゴリズムを含める. Bugfixes -------- バグ修正 * sshd(8): Fix authentication failures when sshd_config contains "AuthenticationMethods any" inside a Match block that overrides a more restrictive default. sshd(8): sshd_config が "AuthenticationMethods any" を Match ブロック 内に含んでいて より制約のあるデフォルトを上書きしている場合の 認証失敗を修正する. * sshd(8): Avoid sending duplicate keepalives when ClientAliveCount is enabled. sshd(8): ClientAliveCount が有効な場合に重複した keepalive の送信を やめる. * sshd(8): Fix two race conditions related to SIGHUP daemon restart. Remnant file descriptors in recently-forked child processes could block the parent sshd's attempt to listen(2) to the configured addresses. Also, the restarting parent sshd could exit before any child processes that were awaiting their re-execution state had completed reading it, leaving them in a fallback path. sshd(8): SIGHUP でのデーモン再起動に関連する 2 つの競合状態を修正する. 最近フォークされた子プロセスの残りのファイルデスクリプタが 親の sshd が 設定されたアドレスで listen(2) しようとするのを ブロックする場合があった. また, 再実行状態を待っていた子プロセスが 読み取りを完了する前に親の sshd を再起動が終了し, フォールバックパスに子プロセスが残る場合があった. * ssh(1): Fix stdout potentially being redirected to /dev/null when ProxyCommand=- was in use. ssh(1): ProxyCommand=- を利用する場合に stdout が /dev/null に リダイレクトされる潜在的な可能性を修正する. * sshd(8): Avoid sending SIGPIPE to child processes if they attempt to write to stderr after their parent processes have exited; bz#2071 sshd(8): 子プロセスが 親プロセスが終了した後で stderr に書きこもうと する場合に SIGPIPE を 子プロセスに送るのをやめる. bz#2071 * ssh(1): Fix bad interaction between the ssh_config ConnectTimeout and ConnectionAttempts directives - connection attempts after the first were ignoring the requested timeout; bz#2918 ssh_config の ConnectTimeout, と ConnectionAttempts 設定項目間の 悪い相互作用を修正する. 1回目より後の接続試行で要求されたタイムアウトを 無視していた. bz#2918 * ssh-keyscan(1): Return a non-zero exit status if no keys were found; bz#2903 ssh-keyscan(1): 鍵が見つからなかった場合に 0 でない終了ステータスを 返す. bz#2903 * scp(1): Sanitize scp filenames to allow UTF-8 characters without terminal control sequences; bz#2434 scp(1): 端末制御シーケンスを含まない UTF-8 文字列を許すように scp の ファイル名を無害化する; bz#2434 * sshd(8): Fix confusion between ClientAliveInterval and time-based RekeyLimit that could cause connections to be incorrectly closed. bz#2757 sshd(8): 接続を不正に終了させてしまう ClientAliveInterval と 時間ベースの RekeyLimit の間の混乱を修正する. bz#2757 * ssh(1), ssh-add(1): Correct some bugs in PKCS#11 token PIN handling at initial token login. The attempt to read the PIN could be skipped in some cases, particularly on devices with integrated PIN readers. This would lead to an inability to retrieve keys from these tokens. bz#2652 ssh(1), ssh-add(1): 最初のトークンログイン時の PKCS#11 トークン PIN の扱いのいくつかのバグを修正する. いくつかの場合, 特に PIN 読み取り機が 統合されたデバイス上で, PIN の 読み取りの試行がスキップされる場合があった. これにより, これらのトークンから鍵を取り出すことができなくなっていた. bz#2652 * ssh(1), ssh-add(1): Support keys on PKCS#11 tokens that set the CKA_ALWAYS_AUTHENTICATE flag by requring a fresh login after the C_SignInit operation. bz#2638 ssh(1), ssh-add(1): C_SignInit 操作の後に新しいログインを要求する CKA_ALWAYS_AUTHENTICATE フラグを設定する PKCS#11 トークンの鍵を サポートする. * ssh(1): Improve documentation for ProxyJump/-J, clarifying that local configuration does not apply to jump hosts. ssh(1): ProxyJump/-J の文書を改善し, ローカルの設定がホストのジャンプに 適用されないことを明確にする. * ssh-keygen(1): Clarify manual - ssh-keygen -e only writes public keys, not private. ssh-keygen(1): マニュアルを明確化する. ssh-keygen -e は 公開鍵のみ書き込み, 秘密鍵に書き込まない. * ssh(1), sshd(8): be more strict in processing protocol banners, allowing \r characters only immediately before \n. ssh(1), sshd(8): プロトコルバナーの処理をより厳格にする. \r 文字は \n の直前のみ許可する. * Various: fix a number of memory leaks, including bz#2942 and bz#2938 いろいろ: たくさんのメモリリークを修正する, bz#2942 と bz#2938 を含む. * scp(1), sftp(1): fix calculation of initial bandwidth limits. Account for bytes written before the timer starts and adjust the schedule on which recalculations are performed. Avoids an initial burst of traffic and yields more accurate bandwidth limits; bz#2927 scp(1), sftp(1): 最初の帯域制限の計算を修正する. タイマーがスタートする前の書き込みバイト数を考慮し, 再計算が行なわれるスケジュールを調整する. 最初のトラフィックの バースを防ぎ, より正確な帯域制限を生成する; bz#2927 * sshd(8): Only consider the ext-info-c extension during the initial key eschange. It shouldn't be sent in subsequent ones, but if it is present we should ignore it. This prevents sshd from sending a SSH_MSG_EXT_INFO for REKEX for buggy these clients. bz#2929 sshd(8): 最初の鍵交換中の ext-intro-c 拡張のみを考慮する. これは最初の鍵交換より後で送られるべきではないが, 送られても 無視するべきだ. これにより, バグのあるクライアントに sshd が SSH_MSG_EXT_INFO を鍵交換のために送るのを防ぐ. bz#2929 * ssh-keygen(1): Clarify manual that ssh-keygen -F (find host in authorized_keys) and -R (remove host from authorized_keys) options may accept either a bare hostname or a [hostname]:port combo. bz#2935 ssh-keygen(1): ssh-keygen -F (authorized_keys 中でホストをさがす) と -R (authorized_keys からホストを除く) オプションが生のホスト名も [hostname]:port の組合せも受け付けることをマニュアルで明確にする. bz#2935 * ssh(1): Don't attempt to connect to empty SSH_AUTH_SOCK; bz#2936 ssh(1): 空の SSH_AUTH_SOCK に接続しないようにする; bz#2936 * sshd(8): Silence error messages when sshd fails to load some of the default host keys. Failure to load an explicitly-configured hostkey is still an error, and failure to load any host key is still fatal. pr/103 sshd(8): sshd がデフォルトのホスト鍵のいくつかのロードに失敗した場合に エラーメッセージを出さなくする. 明示的に設定されたホスト鍵のロードの 失敗は error のままで, どのホスト鍵のロードにも失敗したなら fatal のまま. pr/103 * ssh(1): Redirect stderr of ProxyCommands to /dev/null when ssh is started with ControlPersist; prevents random ProxyCommand output from interfering with session output. ssh(1): ssh が ControlPersist で始まったなら, ProxyCommand の stderr は /dev/null にリダイレクトする. ランダムな ProxyCommand の出力が セッションの出力に干渉するのを防ぐ. * ssh(1): The ssh client was keeping a redundant ssh-agent socket (leftover from authentication) around for the life of the connection; bz#2912 ssh(1): ssh のクラアイントは 冗長な ssh-agent ソケット (認証からの残り) を接続の間中保持していた; bz#2912 * sshd(8): Fix bug in HostbasedAcceptedKeyTypes and PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types were specified, then authentication would always fail for RSA keys as the monitor checks only the base key (not the signature algorithm) type against *AcceptedKeyTypes. bz#2746 HostbasedAcceptedKeyTypes と PubkeyAcceptedKeyTypes 設定項目の バグを修正する. RSA-SHA2 署名タイプのみ指定された場合, モニターが*AcceptedKeyTypes に対して (署名アルゴリズムではなく) ベースの鍵のタイプのみをチェックし, 認証が RSA 鍵に対して常に失敗してしまう. * ssh(1): Request correct signature types from ssh-agent when certificate keys and RSA-SHA2 signatures are in use. ssh(1): 証明書の鍵と RSA-SHA2 署名を利用中に ssh-agent から 正しい署名タイプを要求する. Portability ----------- 移植性 * sshd(8): On Cygwin, run as SYSTEM where possible, using S4U for token creation if it supports MsV1_0 S4U Logon. sshd(8): Cygwin 上で, MsV1_0 S4U ログオンをサポートしているならば トークンの生成に S4U を利用して, 可能ならば SYSTEM として走る * sshd(8): On Cygwin, use custom user/group matching code that respects the OS' behaviour of case-insensitive matching. sshd(8): Cygwin 上で, 大文字小文字を区別しない OS の振舞いを 尊重したカスタムの user/group 一致コードを利用する. * sshd(8): Don't set $MAIL if UsePAM=yes as PAM typically specifies the user environment if it's enabled; bz#2937 sshd(8): PAM が有効な場合に PAM が典型的にユーザの環境を設定するように UsePAM=yes の場合に $MAIL を設定しない. bz#2937 * sshd(8) Cygwin: Change service name to cygsshd to avoid collision with Microsoft's OpenSSH port. sshd(8) Cygwin: Microsoft の OpenSSH 移植と衝突しないようにサービス名を cygssdh に変更する. * Allow building against OpenSSL -dev (3.x) OpenSSH 開発版 (3.x) でのビルドを可能にする * Fix a number of build problems against version configurations and versions of OpenSSL. Including bz#2931 and bz#2921 OpenSSL のバージョン設定とバージョンに対するビルドのたくさんの問題を 修正する. bz#2931 と bz#2921 を含む * Improve warnings in cygwin service setup. bz#2922 cygwin のサービス設定での警告を改善する. bz#2922 * Remove hardcoded service name in cygwin setup. bz#2922 cygwin設定のでハードコードされたサービス名を除く. bz#2922